我试图写“终极”反热链接.htaccess …
你可以在网上find许多例子/教程 / 生成器 ,但其中许多是错误的或不完整的(甚至是两者)。
这些是我正在寻找的function:
这是我迄今取得的成就:
<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部署到我的所有域,而不必为每个域都修改它,那将是非常棒的。) gif|jpe?g|png|zipx? 相当于gif|jpg|jpeg|png|zip|zipx对不对? (对不起,在正则expression式中仍是新的。) 对于#1我知道这是有点可能的。 我find的最接近的是这个代码片段,它从url中删除www,而不用硬编码域。 有没有办法使用这种方法来我的问题#1?
RewriteCond %{HTTP_HOST} ^www\.(.+) RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+) RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]
更新:
我知道的解决scheme将提供水印图像,而不是常规的。 但是我不想find这样的解决scheme。 我想要一个适用于各种二进制文件(zip,exe,iso,jpg,png,gif …)的通用解决scheme(服务403错误)。
不pipe你做什么,你都会“浪费”CPU周期(为了确定引用者站点(链接链接的站点)是否被授权,你必须对请求数据进行一些处理。
你唯一能做的就是节省带宽,同时浪费最less的CPU周期。
在Apache Docs中有一些例子完全符合你的要求。 这个:
SetEnvIf Referer example\.com localreferer <FilesMatch \.(jpg|png|gif)$> Order deny,allow Deny from all Allow from env=localreferer </FilesMatch>
似乎是最适用的(并不需要mod_rewrite的全部权重)。
您可以添加额外的有效引荐来源额外的SetEnvIf和Allow指令。
如果编写一个规则,如果引用是未知的(禁止的),只需调用一个传递图像的PHP文件作为参数,在PHP文件中,只需input一个大红色:“这个文件来自MYWEBSITE.COM并没有官方授权在这里显示“。
至于你的问题,让你的规则全球化。 纠正我,如果我错了,但如果规则是在任何虚拟主机之前宣布它将适用于所有的虚拟主机(种“默认规则”)。
另一个想法很简单:只要redirect到一个PHP文件(这里是filter.php ),它将在授权的网站上查找,并返回所需的文件,如果一切正常的话:
RewriteRule /(.*)\.jpg$ /filter.php?im=$2\.jpg [QSA,L]
在filter.php只是dynamic加载一个虚拟主机列表或类似的东西:
if (isset($_SERVER['HTTP_HOST'])) { if ((mb_ereg('thereferers\.I\.HATE\.com',HOST) !== false) ) { ... your code ... } }
Cloudflare可能对你有一些帮助: http : //www.cloudflare.com
然而,这只适用于图像,但似乎是你以后。
热链接保护
自动启用图像的热链接保护,以防止非现场链接。 不在区域内且不为空白的查阅者将被拒绝访问。 支持的文件扩展名是gif,ico,jpg,jpeg和png。
受保护: http : //mydomain.com/images/pic.jpg绕过: http : //mydomain.com/images/hotlink-ok/pic.jpg
问题1:
RewriteEngine On
RewriteCond%{HTTP_REFERER}!^ http://(。+)?yoursite.com/ [NC]
RewriteCond%{HTTP_REFERER}!^ $
RewriteRule。*。(jpe?g | gif | bmp | png)$ – [F]
问题2:
是
问题3
我会用我的一个
或者使用CoralCDN让民间热点链接到他们心中的内容?