* nix主机 - 如果引用者不匹配,则将下载重定向到主页

时间:2010-03-03 08:40:12

标签: apache unix redirect referrer

我的软件包放在我网站的根目录中。在下载之前,我希望所有来自其他网站的访问者首先看到主页。如果不使用脚本我该怎么做?

1 个答案:

答案 0 :(得分:2)

Apache的mod_rewrite可以做到这一点。它可以测试'HTTP_REFERER'变量并创建重定向。

来自http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

的示例
  

说明

     

假设我们有   http://www.quux-corp.de/~quux/一些   带有内联GIF图形的页面。这些   图形很好,所以其他人直接   通过超链接将它们合并到   他们的页面。我们不喜欢这个   练习,因为它增加无用   流量到我们的服务器。解决方案:

     虽然我们不能100%保护   来自包含的图像,我们至少可以   限制浏览器的情况   发送HTTP Referer标头。

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
RewriteRule .*\.gif$        -                                    [F]

RewriteCond %{HTTP_REFERER}         !^$
RewriteCond %{HTTP_REFERER}         !.*/foo-with-gif\.html$
RewriteRule ^inlined-in-foo\.gif$   -                        [F]

其他变体http://articles.sitepoint.com/print/apache-mod_rewrite-examples

RewriteCond %{HTTP_REFERER} !^$  
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC]  
RewriteRule \.(gif|jpg|png)$ http://www.example.com/hotlinked.gif [R=301,L]

第一行检查referer是否为空。第二 - 如果不是你的域名。 第三个将“错误查询”重定向到“hotlinked.gif”