2

我想将所有热链接图像重定向到一个虚拟图像。

我为此应用了 htaccess 代码,但它仅重定向 404(未找到)图像

表示未重定向具有正确链接的热链接图像。

我还为非 www 应用了重定向到 www 版本,认为此重定向导致与热链接重定向代码发生冲突

这是代码

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301]
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f

RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite/.*$ [NC]
RewriteRule \.(gif|jpg|png) http://www.mysite.com/temp/aa.jpg [R,L]
4

2 回答 2

1

好吧,您明确排除了对在这种情况下确实存在的文件的请求的重写:

RewriteCond %{REQUEST_FILENAME} !-f

实际上,我不确定您是否真的要将每个图像的所有客户端重定向到另一个域名。这意味着您将客户端所需的 http 请求增加一倍。

于 2012-12-13T12:57:52.297 回答
1

像这样的修改应该可以工作:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^mysite\.com$
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^.*/aa.jpg$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite\.com/?$ [NC]
RewriteRule ^.*\.(gif|jpg|png)$ http://www.mysite.com/temp/aa.jpg [R=301,L]
于 2012-12-13T15:13:49.247 回答