.htaccess基于HTTP_REFERER的重定向为空

时间:2013-01-24 22:52:24

标签: apache .htaccess rewrite

我正在尝试在WP博客安装上设置重定向,以检测从无处进入的任何人(即不是来自其他网站)。我们的想法是捕获一些将预先构建的URL插入系统的垃圾邮件程序,以创建评论/帖子。我想如果他们没有推荐人网站,我可以将他们弹回主页(www.domain.com/index.php或只是www.domain.com),这应该是麻烦机器人而不是真实的人

我知道推荐人可以伪造,但希望它至少可以阻止愚蠢。

我对.htaccess重写规则一无所知(我为一个菜鸟而道歉),但我找不到在现有答案或其他任何网上做过这一点的人,尽管有几次搜索。要么没有人这样做,要么我没有正确的措辞。

任何帮助表示赞赏。 :)

1 个答案:

答案 0 :(得分:1)

我建议不要这样做。通过这样做,您可能会惹恼并疏远潜在用户的一部分:例如,我的浏览器设置为不报告引用者信息,其他人使用匿名网络。您可以通过匹配他们报告的用户代理字符串来捕获转储机器人(如here所示)。

否则很简单:匹配RewriteCond中的HTTP_REFERER环境变量:

RewriteCond %{HTTP_REFERER} ^$
RewriteRule .* http://example.com/

RewriteCond检查referer是否为空字符串; RewriteRule将所有内容重定向到http://example.com/ root。这是一个硬重定向,这意味着服务器将发出R = 301移动的永久标头。如果您只想偷偷地提供其他资源,请通过指定相对URL(例如RewriteRule .* index.php)来使用软重定向。但是,对于没有报告引荐来源信息的人来说,将它们重定向到“如果您想阅读此页面,您应该启用引荐来源报告”这样的网页,可能会更加友好。

有关此类事项的更多示例,请参阅the manual。那里有一种非常类似的防止 - 链接方法。