我使用谢泼茨非常基本的URL路由机制来路由我的页面,但是我遇到了一个文件扩展名的问题。
如果加载www.example.com/register,就会得到index.php,但保留URL。
但是,如果加载www.example.com/register.php,它不会将我发送到index.php,而是保留URL。怎么会这样?
这是我的.htaccess文件,适用于非扩展名:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]我如何将这两者结合起来?我想把这两件都标记成蓝色..。
发布于 2016-02-01 18:24:46
通过使用RewriteCond和RewriteRule自己解决了这个问题。这就是我的.htaccess现在的样子:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} /.+\.php [NC]
RewriteRule ^ index.php [QSA,L]现在,我可以使用.php的路由机制将所有具有谢泼茨文件扩展名的URL重定向到自定义的404页面。
这是404页:

这是没有.php文件扩展名的页面

发布于 2016-02-01 16:53:35
要将所有外部php请求重定向到404,可以在.htaccess中使用以下规则:
RewriteCond %{THE_REQUEST} /.+\.php [NC]
RewriteRule ^ - [L,R=404]https://stackoverflow.com/questions/35135644
复制相似问题