想空文件夹返回的404,而不是403
问题描述:
我用下面的代码在我的httpd.conf文件阻止不需要的机器人和参观者(如打非现有的WP-登录页面):想空文件夹返回的404,而不是403
SetEnvIf User-Agent BadBot GoAway=1
Order allow,deny
Allow from all
Deny from env=GoAway
这会给他们一个403 Forbidden错误。在我的自定义403页面上,我将IP保存到数据库以永久阻止/禁止他们使用联系表单等。
这很有效。但是我注意到有些用户因为访问了一个空文件夹而被阻止。这是不需要的。
使用Options -Indexes
我阻止了目录查看,但是这也会输出一个403 Forbidden错误。
问题:如何在访问空文件夹而不是403时显示404错误?
答
既然你似乎有机会获得httpd.conf
,那么你可以这样做在服务器配置或虚拟主机的上下文中的以下内容:
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”,如果有匹配仅记录条目。或者,只有在请求未映射到目录时才记录条目。