Apache htaccess阻止热链接也阻止外部链接
我在.htaccess文件中有这段代码,以防止图像和pdf文件的热链接,但它也阻止正常的外部链接工作。 我的htaccess文件:Apache htaccess阻止热链接也阻止外部链接,apache,.htaccess,Apache,.htaccess,我在.htaccess文件中有这段代码,以防止图像和pdf文件的热链接,但它也阻止正常的外部链接工作。 我的htaccess文件: RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?mywebsite.com/.*$ [NC] RewriteRule .*\.(gif|jpg|pdf|png)$ http://www.mywebsite.com/images/
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mywebsite.com/.*$ [NC]
RewriteRule .*\.(gif|jpg|pdf|png)$ http://www.mywebsite.com/images/notallowed.jpe [NC,R,L]
问题是,一个称为pdf文件的合法外部链接将导致替换图像而不是pdf文件出现。
这是正常的还是我做错了/错过了什么?
提前谢谢。我想试试这个
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^https?://(?:www\.)?mywebsite\.com(?:$|/) [NC] [OR]
# Repeat the next line as needed for each allowed site
RewriteCond %{HTTP_REFERER} !^https?://(?:www\.)?allowedsite1\.com(?:$|/) [NC] [OR]
RewriteCond %{HTTP_REFERER} !^https?://(?:www\.)?allowedsite2\.com(?:$|/) [NC]
RewriteRule ^(.*)\.(gif|jpg|pdf|png) http://www.mywebsite.com/images/notallowed.jpe [NC,R,L]
手动添加每个允许的站点可能有点不方便,但它应该会给您一些控制。。。另一个可能的缺点是,例如,访问原始图像的用户必须通过网站中现有的链接进行访问
示例:键入http://www.mywebsite.com/logo.png
进入浏览器并尝试直接查看文件logo.png
不起作用,但是如果单击
,查看同一文件应该不会有问题
希望能帮助某人…改用:
setenif Referer^http远程
命令拒绝,允许
拒绝来自env=远程
通融
谢谢您的回答。我试过了,但没有!也不行。我真的不明白为什么。是的,实际上我是想编辑这个答案(也许我现在会这样做,只针对其他可能处于类似情况的人),因为我意识到这会阻止所有未被列为“允许”的人(例如第二行的条目)。不可能。它不起作用。让我解释一下。如果我把我的网站的pdf文件放在一个iframe中(在我的网站之外),pdf会被我想要的图像所取代。但是,如果在同一个程序中,我放置了一个类似“target=“\u blank”>的链接,pdf仍然没有显示,它会被我不需要的图像替换。因此,我不认为这是添加更多允许的站点的问题,而是改为更改代码中的其他内容。无论如何,再次感谢。
SetEnvIf Referer ^http remote
<FilesMatch "\.(png|gif|jpg|pdf)">
order deny,allow
deny from env=remote
allow from all
</FilesMatch>