2

我想使用 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]

谢谢

4

3 回答 3

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

如果您需要在参数中包含图像的路径。

于 2010-02-28T20:27:50.160 回答
0

您应该使用 mod_rewrite,如果 HTTP_REFERRER 为空,则重定向到/image-with-nav.php?image=$1
尝试类似这样的操作
RewriteEngine on

RewriteCond %{HTTP_REFERER} ^$

.* image-with-nav.php?image=$1 [L]

于 2010-02-28T20:17:57.060 回答
0

现在,您需要检查的是引用者,因为 URL 始终是您的图像的 URL,因为它是一个 http 请求。你可以用这样的东西:

RewriteCond %{REQUEST_FILENAME} \.(jpg|png|gif)$
RewriteCond %{HTTP_REFERER} =""
RewriteRule (.*) http://someurl.com [R=301]
于 2010-02-28T20:19:50.430 回答