[英]Want empty folder to return 404 instead of 403
我在httpd.conf文件中使用以下代碼來阻止不需要的漫游器和訪問者(例如,訪問不存在的wp登錄頁面):
SetEnvIf User-Agent BadBot GoAway=1
Order allow,deny
Allow from all
Deny from env=GoAway
這將給他們一個403禁止錯誤。 在我的自定義403頁面上,我將IP保存到數據庫中,以永久阻止/禁止使用聯系表格等。
這運作得很好。 但是我注意到一些用戶被阻止,因為他們訪問了一個空文件夾。 這是不需要的。
使用Options -Indexes
我已經阻止了目錄查看,但是這也會輸出403 Forbidden錯誤。
問題:在訪問空文件夾而不是403時如何提供和顯示404錯誤?
由於您似乎可以訪問httpd.conf
因此可以在服務器配置或virtualhost上下文中執行以下操作:
RewriteEngine On
RewriteCond %{LA-U:REQUEST_FILENAME} -d
RewriteRule /. - [R=404]
另外,在您的.htaccess
文件頂部附近(因為您已經標記了問題.htaccess
),請添加以下內容(這在目錄上下文中也適用):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [R=404]
模式的目的是/.
(或.
)是為了防止將404提供給文檔根目錄。
根據定義自定義 ErrorDocument
,每種方法可能會得到不同的404響應。
或者,在您的自定義403中,對“ BadBot”執行相同的檢查,僅在存在匹配項時才記錄該條目。 或者,僅在請求未映射到目錄時才記錄該條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.