【问题标题】:Redirect direct image access重定向直接图片访问
【发布时间】:2015-11-23 21:19:05
【问题描述】:

我正在努力解决这个问题,我知道有一些解决方案,但没有一个对我有用。我想将直接图像访问重定向到其 HTML 站点,因为图像文件名与 HTML 站点完全相同。示例:

http://example.com/images/subcategory/this-is-an-image.png 

应该被重定向到

http://example.com/images/subcategory/this-is-an-image.html

图像可以是 png、jpg、jpeg 或 gif。当然,我仍然想将图像嵌入到我网站上的<img> 标签中。目标不是防止盗链,目标是将我服务器上的所有直接图像调用重定向到其 html 站点。有什么解决办法吗?谢谢。

【问题讨论】:

  • 您将如何确定是直接加载图像还是直接加载图像?有人加载 img 是因为它已被热链接(来自您的 html 或其他地方)?没有 100% 可靠的方法可以做到这一点,并且无法信任推荐人。
  • 如果该方法还可以防止盗链,我只是想澄清一下,防止盗链不是主要目标。
  • 是的,但是您将对图像的所有访问重定向到一个 .html 文件,所以任何合法获得 <img src="/images/subcategory/this-is-an-image.png"> 的东西都会吸收重定向 html 作为图像数据,并且只是显示损坏的图像图标。就像我说的,热链接检测不是 100% 可靠的,你将迫使人们在你的大部分用户群中吸收 html 而不是 .png 数据。

标签: .htaccess url-rewriting rewrite


【解决方案1】:

你可以使用它:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)example\.com [NC]
RewriteRule ^(.+)\.(jpe?g|gif|png)$ $1.html [NC,R,L]

不是 100% 可靠的方法,但总比没有好...

【讨论】:

  • 感谢您的回复。现在所有嵌入的图像都已损坏,但直接图像访问仍然有效。
  • 您已正确地将“example”替换为您的实际域名?
  • 不是直接图片访问,而是从其他网站访问。您可以删除RewriteCond %{HTTP_REFERER} !^$。为此。
  • 啊,谢谢。这正在工作!但现在奇怪的行为:我可以输入图片网址并显示图片。如果我按 F5,我会被重定向到 html 站点。有任何想法吗?这可能是一个缓存问题,因为这个网址的睾丸有点太多了吗?
  • Symfony 缓存清除,浏览器缓存清除和它的工作。谢谢老哥!
猜你喜欢
  • 1970-01-01
  • 2021-11-24
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
相关资源
最近更新 更多