1

我有一个软件包放在我网站的根目录中。我希望所有来自其他网站的访问者在下载之前先看到主页。在不使用脚本的情况下如何做到这一点?

4

1 回答 1

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”

于 2010-03-03T08:47:31.440 回答