【问题标题】:.htaccess: How do I block referers EXCEPT for specific dirs?.htaccess:我如何阻止推荐人,除了特定的模具?
【发布时间】:2012-01-27 04:56:39
【问题描述】:

我想阻止从 domain1 和 domain2 对网站的所有访问,除非他们专门访问 //media。到目前为止,我有:

RewriteCond %{HTTP_REFERER} domain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} domain2\.com [NC]
RewriteRule .* - [F]

这很好用,只是它阻止了所有个请求。我希望允许来自这两个域的传入链接能够访问//media。到目前为止,我还无法弄清楚。

非常感谢任何帮助。

【问题讨论】:

  • 抱歉之前的回答;我已经用(希望)更完整的可能答案对其进行了更新。

标签: apache .htaccess


【解决方案1】:

这样的事情怎么样:

RewriteCond %{HTTP_REFERER} domain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} domain2\.com [NC]
RewriteCond %{REQUEST_URI} !media [NC,OR]
RewriteCond %{REQUEST_URI} !^$ [NC]
RewriteRule (.*)$ $1 [R,L]
RewriteRule .* - [F]

检查语法:http://www.lyxx.com/freestuff/002.html

【讨论】:

  • 您的第一个代码是正确的 Summea。 Apache 删除了 RewriteRule 中的前导斜杠。
  • 它确实有效,但是对于它不阻止的目录,Apache 提供默认虚拟主机而不是正确的虚拟主机!这是一个完全不同的问题,所以我将把答案标记为已接受。谢谢summea!
【解决方案2】:

怎么样:

RewriteCond %{HTTP_REFERER} (:/|\.)(domain1|domain2)\.com [NC]
RewriteRule ^([^/]*$|media/)       -                      [skip=1] 

RewriteCond %{HTTP_REFERER} (:/|\.)(domain1|domain2)\.com [NC]
RewriteRule .*                     -                      [F]

不需要外部重定向。我在这里假设您还允许*.domain1.com 等。

【讨论】:

    猜你喜欢
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 2015-03-05
    • 1970-01-01
    • 2015-02-25
    • 2014-08-18
    相关资源
    最近更新 更多