2012-07-30 50 views
0

我有以下htaccess代碼以阻止所有.php文件。php - htaccess阻止除根文件以外的php文件

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\.php[/?\ ] 
RewriteRule .*\.php$ 404.php [L] 

但我怎麼能阻止只有文件不在根。

例如

mywebsite/index.php - don't want to block 
mywebsite/go/go.php - want to block 
mywebsite/en/en.php - want to block 
+4

不要這樣做。將「不接觸」文件放在文檔根目錄之外的某處。 PHP不會關心他們在哪裏,只要他們可以通過include_path搜索或直接路徑規範 – 2012-07-30 16:25:58

+0

大聲笑....我得到同樣的問題,我能趕上包括文件.... – 2012-07-30 16:35:20

回答

0

不知道如何不循環,但你想改變你匹配的正則表達式包含在你的路徑至少1深度:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\.php[/?\ ] 
RewriteRule ^[^/]+/.*\.php$ 404.php [L] 

此外,請參閱馬克B的評論。