好的,所以我写了一个成功的htaccess重定向,但是有一个问题。正确的做法是,如果有人直接尝试访问图像,则不会查看原始图像,而是将其带到图像附件页面。
这是我的htaccess代码:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !\.php [NC]
RewriteRule ^(.*)\.jpg http://myblog.com/?attachment=$1 [L]
RewriteRule ^files/2016/12/([^.]+)\.(jpg|jpeg|png|bmp|gif)$ http://myblog.com/?attachment=$1/ [L]
问题出现了:在图像附件页面上,它实际上显示了图像网址所在的图像,即使在查看源代码时,图像网址也是正确的。出了点问题。
见此截图: https://i.stack.imgur.com/Rpixy.jpg
整个页面加载正常,包括所有其他图像和内容。 唯一不起作用的是原始图像。从files/2016/12/
开始,所有图像都被打破
图片检查窗口中显示的网址是正确的图片网址,如果没有htaccess代码,则此网址会直接转到图片。
即使我手动重新加载页面,它仍会显示损坏的图像。但是,如果我删除了htaccess代码并重新加载页面,则会显示图像,因此附件页面网址是正确的。
我该如何解决这个问题?谢谢。
编辑:我想我可以通过添加一个过滤器来解决这个问题,因为这只是在它被引用的时候运行它。事实上,我认为这会更好。基本上,如果它是托管图像的域以外的任何引用者,那么它将运行重定向。我怎么能这样做?