首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止在Wordpress中使用htaccess进行热链接,以及为什么最常用的htaccess不起作用?

如何防止在Wordpress中使用htaccess进行热链接,以及为什么最常用的htaccess不起作用?
EN

WordPress Development用户
提问于 2018-03-21 22:04:19
回答 1查看 355关注 0票数 3

我从这个.htaccess配置开始:

代码语言:javascript
复制
Options -Indexes

order allow,deny
deny from all



RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

# END WordPress

为了防止网站被热链接窃取,我搜索了在代码底部添加以下代码的最佳解决方案:

代码语言:javascript
复制
RewriteEngine on
RewriteCond %{REQUEST_URI} !hotlinking\.png$
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite\.com [NC]
RewriteRule \.(jpe?g|png|gif)$ /hotlinking.png [NC,L]

上面的代码是防止热链接的最常见的解决方案,非常清楚,但它不起作用:例如,当我粘贴图像的URL时

https://www.mywebsite.com/wp-content/uploads/sites/2/2018/01/imagexample.jpg

浏览器显示图像。

代码上是否有错误,还是有更好的解决方案?

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2018-03-21 23:05:17

当我粘贴图像的URL

我想您的意思是当您将URL直接粘贴到浏览器的地址栏中时,因为我认为您不会将它粘贴到其他任何地方。(?)

如果是这样的话,那么您所看到的行为是正确的-浏览器应该显示图像。这不是真正的“热链接”,这是一个直接的请求。实际上,您无法阻止直接请求(当HTTP引用程序为空时),因为您可能会阻塞站点的实际用户的这些图像,这些用户不会将HTTP引用头作为请求的一部分发送。

允许此请求发生的条件如下:

代码语言:javascript
复制
RewriteCond %{HTTP_REFERER} !^$

即。当HTTP_REFERER不是空的时候。

撇开:您已经标记了您的问题“多站点”,但是,您的.htaccess文件中似乎同时有两组代码:标准的单站点代码和多站点代码?单站点代码是第一位的,所以这就是“获胜”的原因。

票数 2
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/298523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档