【已解决】网站搬家后自己网站的图片显示防盗链

【背景】

在网站搬家:

【记录】将网站crifan.com从老鹰主机hawkhost搬家到糖果主机SugarHosts

期间的:

【记录】为WordPress网站crifan.com的更新SQL数据库文件

后,结果自己网站上面的图片,竟然显示出防盗链了。

【解决过程】

1.那是因为我之前添加了防盗链:

【记录】给crifan.com网站设置图片防盗链 | 在路上

此处是IP地址,不是www.crifan.com开头,所以显示盗链,等DNS生效以后,

即使修改防盗链规则,把IP加上,即可正常显示图片了。

2.那索性现在就去更新IP,修改.htacess,改为:

#Hotlink Protection 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^.+?crifan\.com/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?108\.166\.216\.250/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?google.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?baidu.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?sogou.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?yahoo.*$ [NC] 
RewriteRule \.(jpg|png)$ http://www.crifan.com/files/res/crifan_com/stealingisbad.gif[R,L]

added new ip to htaccess file of crifan wordpress

更新后,再去通过IP访问主页,看看图片是否可以正常显示。

结果还是防盗链的:

after add ip to htaccess image still show hotlink

2.发现好像正则写的有问题:

!^.+?108\.166\.216\.250/.*$

好像该改为:

!^.*?108\.166\.216\.250/.*$

即:

#Hotlink Protection 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^.+?crifan\.com/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.*?108\.166\.216\.250/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?google.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?baidu.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?sogou.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?yahoo.*$ [NC] 
RewriteRule \.(jpg|png)$ http://www.crifan.com/files/res/crifan_com/stealingisbad.gif[R,L]

但结果依旧是防盗链。。。

3.再改为:

#Hotlink Protection 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^.+?crifan\.com/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^108\.166\.216\.250/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?google.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?baidu.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?sogou.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?yahoo.*$ [NC] 
RewriteRule \.(jpg|png)$ http://www.crifan.com/files/res/crifan_com/stealingisbad.gif [R,L]

还不行。

4.但是此刻,才想起来:

我修改的是新服务器sugarhosts上面的.htacess文件

而访问图片却是www.crifan.com/上面的,即旧服务器hawk上面的。。。

所以,应该是去修改hawk上面的那个.htaccess才对。。。

晕死。。。。

5.果然,去新的虚拟主机服务器,Sugarhosts上面的,把配置改为上面的:

#Hotlink Protection 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^.+?crifan\.com/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.*?108\.166\.216\.250/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?google.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?baidu.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?sogou.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?yahoo.*$ [NC] 
RewriteRule \.(jpg|png)$ http://www.crifan.com/files/res/crifan_com/stealingisbad.gif[R,L]

后,Ctrl+F5强制刷新网站页面后,图片即可正常显示:

after change htaccess of current sugarhosts image show ok

 

【总结】

最终,保留这个配置:

#Hotlink Protection 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^.+?crifan\.com/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.*?108\.166\.216\.250/?.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?google.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?baidu.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?sogou.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^.+?yahoo.*$ [NC] 
RewriteRule \.(jpg|png)$ http://www.crifan.com/files/res/crifan_com/stealingisbad.gif[R,L]

以便支持IP地址访问:

其中IP最后可以有斜杠,也可以没有。

IP前面可以有其他,也可以没有:实际上是没有。

至此,就折腾到这。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量