5
如何防止网站上资源的热链接(“图像盗窃” /“带宽盗窃”)?
我正在尝试编写“最终”反热链接.htaccess ... 您可以在网上找到许多示例/教程 / 生成器,但其中许多是错误的或不完整的(或两者都是)。 这些是我要寻找的功能: 当HTTP_REFERER是外部站点时,必须阻止热链接以获取文件扩展名列表。 必须允许对当前域(duh)进行热链接,而不必在.htaccess中对其进行编码。 对于当前域,它必须在http和https下运行。 对于当前域,它必须与www一起使用,而不能与www一起使用。 必须能够将例外域添加到这些规则中(例如我们的朋友Google),并且这些域必须在http和https下以及带有www或不带有www的情况下工作。 到目前为止,这是我实现的目标: <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com/.*$ [NC] RewriteRule \.(gif|jpe?g|png|zipx?)$ - [NC,F] </IfModule> 我的问题: 如何避免mydomain.com在.htaccess中进行硬编码?(能够将这个.htaccess部署到我所有的域中而不必为每个域都进行修改,那就太好了。) 在我的RewriteRule中,gif|jpe?g|png|zipx?等效gif|jpg|jpeg|png|zip|zipx吗?(对不起,正则表达式仍然很新。) 您是否发现我不知道的.htaccess中有什么不好的东西? 对于#1,我知道这是有可能的。我找到的最接近的代码段是从URL中删除www而不对域进行硬编码的代码段。有没有办法对我的问题1使用此方法? RewriteCond %{HTTP_HOST} ^www\.(.+) RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+) RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301] 更新: …