【问题标题】:how to generic .htaccess to prevent hotlink如何通用 .htaccess 以防止热链接
【发布时间】:2012-08-27 20:54:02
【问题描述】:

以下代码可以正常工作:

RewriteCond %{HTTP_REFERER} !^http://superwebx.com/.*$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png|swf|css)$ - [F]

但我想为我管理的几个网站制作一个通用脚本,但尝试获取失败

RewriteCond %{HTTP_REFERER} !^http://%{HTTP_HOST}/.*$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png|swf|css)$ - [F]

【问题讨论】:

  • 这是一个非常有用的问题。我正在构建一个我想在一堆网站上重用的 .htaccess,所以一个通用的防盗链 RewriteCond 会很棒!

标签: linux apache .htaccess mod-rewrite hotlinking


【解决方案1】:

很老的一个,但这是你的答案:

RewriteCond %{HTTP_HOST}@@%{HTTP_REFERER} !^([^@]*)@@https?://\1/.*

【讨论】:

    【解决方案2】:

    您不能在正则表达式中使用变量。您可以通过使用 RegEx 反向引用来解决此问题,如下所示:

    RewriteCond %{HTTP_REFERER} ^https?://([^/]+)/ [NC]
    RewriteCond %1#%{HTTP_HOST} !^(.+)#\1$
    RewriteRule \.(jpe?g|gif|bmp|png|swf|css)$ - [F]
    

    (请注意,# 仅用作边界。它可以是域名中未使用的任何字符。)

    【讨论】:

      猜你喜欢
      • 2018-09-12
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多