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