我有以下htaccess代码以阻止所有.php文件。
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\.php[/?\ ]
RewriteRule .*\.php$ 404.php [L]
但我怎么能只阻止不在root中的文件。
例如
mywebsite/index.php - don't want to block
mywebsite/go/go.php - want to block
mywebsite/en/en.php - want to block
答案 0 :(得分:0)
不确定这是如何不循环的,但是您希望更改匹配的正则表达式以在路径中包含至少1个深度:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\.php[/?\ ]
RewriteRule ^[^/]+/.*\.php$ 404.php [L]
另外,请参阅Marc B的评论。