我使用Shephertz非常基本的URL路由机制来路由我的页面。 但是我遇到了文件扩展名的问题。
如果我加载www.example.com/register
,我会收到index.php
,但请保留网址。
但是,如果我加载www.example.com/register.php
,则不会将我发送到index.php
,但会保留该网址。怎么样?
这是我的.htaccess
文件,适用于非扩展程序:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
我如何将这两者结合起来? I want both of these to be marked blue...
答案 0 :(得分:0)
要将所有外部php请求重定向到404,您可以在.htaccess中使用以下规则:
RewriteCond %{THE_REQUEST} /.+\.php [NC]
RewriteRule ^ - [L,R=404]
答案 1 :(得分:0)
使用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]
我现在可以使用Shephertz的路由机制将带有.php文件扩展名的所有网址重定向到自定义404页面。
这是404页面:
这是没有.php文件扩展名的页面