答案 0 :(得分:0)
很难基于这么多的假设给出答案,但我会尽力的。
假设:
您将apache用作网络服务器
您有3个不同的域,它们指向同一服务器上的同一目录
您没有CDN可能会干扰
您尚未安装WP插件来防止热链接
您使用.htaccess
文件来防止热链接
您已经编辑了.htaccess
,并添加了以下内容:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg)$ http://yourdomain.com/hotlink-placeholder.jpg [NC,R,L]
之后
您必须添加需要访问图像的其他域,将RewriteCond
列表视为排除列表,该列表显示“ 仅当引用者不在此列表中时才应用重写规则” ”,因此您必须将其他域添加到列表中。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
#this
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain2.com [NC]
#and this
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain3.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg)$ http://yourdomain.com/hotlink-placeholder.jpg [NC,R,L]
如果您无法使.htaccess
正常工作,请考虑切换到插件,他们将为您管理文件
如果您需要一些工具来检查.htaccess
的更改,然后再提交,请查看this