我想,使用htaccess,允许热链接,但如果有人在我的网站上查看图像,我想将它们重定向到我显示导航等图像的“托管”版本。
所以基本上任何来自外部网站的热链接都不会受到影响,但是如果有人直接在我的服务器上查看图像,即www.domain.com/image.jpg,则会重定向。我还想确保我也可以在我的网站中正确显示图像。
有人可以帮忙吗?
编辑:这是我目前的代码
RewriteCond %{REQUEST_FILENAME} \.jpg$
RewriteCond %{HTTP_REFERER} =""
RewriteRule ^userpics/covers/(.*).jpg$ /view/$1.html [R=301]
RewriteRule ^view/(.*).html$ /view.html?img=$1 [L]
由于
答案 0 :(得分:2)
使用.htaccess
RewriteEngine on
RewriteCond %{REQUEST_URI} \.(jpg|png|gif)$
RewriteCond %{HTTP_REFERER} ^https?://yoursite\.com/.*$ [NC]
RewriteRule ([^/]+)$ url_to_script?img=$1
你可以简化
RewriteCond %{HTTP_REFERER} ^https?://yoursite\.com/.*$ [NC]
到
RewriteCond %{HTTP_REFERER} yoursite\.com [NC]
规则可以写成
RewriteRule (.*) url_to_script?img=$1
如果您需要在参数中包含图像的路径。
答案 1 :(得分:0)
如果HTTP_REFERRER为空,则应使用mod_rewrite,然后重定向到/image-with-nav.php?image=$1
试试这样的事情
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^$
.* image-with-nav.php?image=$1 [L]
答案 2 :(得分:0)
现在,您需要检查的是引荐来源,因为URL始终是图像的URL,因为它是一个http请求。你可以选择这样的东西:
RewriteCond %{REQUEST_FILENAME} \.(jpg|png|gif)$
RewriteCond %{HTTP_REFERER} =""
RewriteRule (.*) http://someurl.com [R=301]