我想为Apache 2.2中的.htaccess文件中的一组特定的RewriteCond创建特定的403消息(或页面)。我从来没有见过这样做,但似乎它应该是可能的。特定的RewriteCond自定义403页面
我的.htaccess访问文件的相关部分看起来是这样的:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Baiduspider.* [NC]
RewriteRule .* - [F]
正如你所看到的,我刚刚从接入阻止他们如果用户代理我的RewriteCond匹配。
多一点细节
这个伟大的工程阻止违规的机器人,但我们碰到一个稍微恼人的问题。我们的网站被许多技术人员访问。他们自己做了很多编程,并经常使用浏览器插件,如“用户代理切换器”。
我想在此特定实例中提供更有意义的消息。以便他们知道将“用户代理切换器”更改为普通浏览器。我不希望只提供正常的403页面,而是希望在此发布更友好的消息。
我知道我可以将它传递给我们的脚本引擎,拔出用户代理并传递自定义头文件,但似乎这可能会有更优雅的.htaccess解决方案。
这是真的很接近我所需要的。我碰到的一个问题是,你上面提到的条件不包括访问403页面。你陷入循环,浏览器出错。对于访问此答案的其他人,您是否可以修改答案以使用403的errorpages目录(因为根级被您的语句阻塞),然后将其作为第一个条件:'RewriteRule^errorpages - [L,NC ]'如果你这样做,我测试过,它的工作原理。在修复之后,我会让你高兴。 – Terry
@特里是的,你说得很对。我修复它,所以它不应该导致循环。 –