Apache htaccess存在akward问题(重写条件/重写规则)

Apache htaccess存在akward问题(重写条件/重写规则),apache,mod-rewrite,Apache,Mod Rewrite,基本上,我希望重写引擎杀死任何包含“.php”的URI 所以我有这个,但它似乎不起作用 RewriteCond %{REQUEST_URI} ^(\.php)+$ RewriteRule ^/$ 404[L] 即使只是重写规则^(.*.php)+/$404也不行 也许我的大脑因为整天在这个项目上工作而感到震惊,所以这可能是一个小错误 谢谢试试这个: RewriteRule ^(login|register)$ $1.php [NC,QSA,L] RewriteCond %{SCRIPT_FI

基本上,我希望重写引擎杀死任何包含“.php”的URI

所以我有这个,但它似乎不起作用

RewriteCond %{REQUEST_URI} ^(\.php)+$
RewriteRule ^/$ 404[L]
即使只是重写规则^(.*.php)+/$404也不行

也许我的大脑因为整天在这个项目上工作而感到震惊,所以这可能是一个小错误

谢谢

试试这个:

RewriteRule ^(login|register)$ $1.php [NC,QSA,L]

RewriteCond %{SCRIPT_FILENAME} !\/(login|register)(\.php)? [NC]
RewriteCond %{REQUEST_URI} \.php$
RewriteRule (.*) 404 [L]

(登录、注册等)是文件名。它的意思是:登录或注册或其他一些文件,如果你有多个。如果您只有1,那么可以使用(login)或login,您不能有将URI重定向到php文件的重写规则;它变成了一个循环孔,第一个条件是^(php)。

这将非常有效,但我刚刚解决了我的问题。事实上,我已经有十几个URI别名重定向到php文件。所以我认为apache也在拒绝这些重定向,基本上是在制造一个漏洞。RewriteRule^login(/*)$login.phpDo你有不止一个类似login的PHP文件吗?