簡體   English   中英

希望空文件夾返回404而不是403

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM