2010-05-18 87 views

回答

21
<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak)$"> 
Order Allow,Deny 
Deny from all 
</FilesMatch> 

加載有一些常見的擴展,可以根據需要添加更多。

4
<FilesMatch "\.ext$"> 
    Deny from all 
</FilesMatch> 

查看FilesMatchDeny

編輯 Apache文檔:Artefacto使得good point,這將返回403,而不是404,如果你的目的是很重要的

11

如果你真的想要一個404(而不是403),你可以使用mod_rewrite:

RewriteEngine on 
RewriteRule \.ext$ - [R=404] 
+0

對不起 - 403是我應該用什麼。我編輯的問題說40x。 – Stevko 2010-05-18 19:36:30

+0

請注意,當禁止訪問資源時,RFC 2616允許404響應(請參閱第10.4.4節)。所以你原來的問題是有效的。 – Artefacto 2010-05-18 20:08:29

+2

還有'Redirect 404',ref:[請求.htaccess應該返回404而不是403](http://stackoverflow.com/a/7945851/367456)和'RedirectMatch 404',ref:[Make .git目錄web無法訪問](http://stackoverflow.com/a/17916515/367456) - 在這裏聚集一點。 – hakre 2014-01-23 09:18:14

2

您也可以拒絕訪問使用RedirectMatch指令文件擴展名:

RedirectMatch 403 ^/.+\.(php|html|gif)$ 

這將如果客戶請求以.php.html.gif結尾的任何URI,則返回403禁止錯誤。您可以使用欄|向模式添加更多擴展名。

0

我喜歡@Chris Lawlor's和@ starkeen的答案,並且由於OP詢問「40x」,我會建議重定向到404錯誤,因爲它不會放棄文件存在的事實。

這是我目前使用在我的項目之一:

# Hide files not concerning the user 
RedirectMatch 404 \.(htaccess|htpasswd|ini|log|sh|inc|bak|bkp|sql)$ 
相關問題