我创建了一个htaccess文件并将其放在public_html目录(我的服务器的根目录)中:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://mdpcomics.ir/.*$ [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ https://blogvault.net/wp-content/uploads/2014/12/no-hotlinking.png [NC,R,L]
</ifModule>
它会阻止热链接并显示另一个图像。但它也不允许我自己的域名。
即。此链接不应显示图片: http://dl.mdpcomics.ir/logo.png
但是这个链接应该显示出来。我的意思是我希望它通过使用此链接显示图像: http://mdpcomics.ir/?imagename=logo
但也不允许这样做。
我已经到处搜索过,我尝试了很多建议,但所有建议都如下:
- 每个人都可以看到图片
- 没有人能看到包括我自己在内的图片O.o
醇>
我的服务器操作系统是linux,我的面板是directadmin
编辑: 我意识到我的主机有一个假的或无效的ip:178.63.56.20320 我通过php代码得到了ip:
echo $_SERVER['REMOTE_ADDR'];
答案 0 :(得分:0)
也许这是您的问题:在您的RewriteRule
中说https://
,但您的RewriteCond
正在测试http://
。您只需添加s?
:
RewriteCond %{HTTP_REFERER} !^https?://mdpcomics.ir/.*$ [NC]
需要注意的其他事项:
Referer
Referer
标题或将其设置为完全不同的内容以保护其隐私为了捕捉这些情况,我会添加另一个条件:
# Assume client sent "real" Referer if it begins with http(s)://
RewriteCond %{HTTP_REFERER} ^https?:// [NC]
缺点是,如果您的网站运行正常的HTTP,图像可以从外部HTTPS位置进行热链接。