Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess:图像重定向_.htaccess_Redirect - Fatal编程技术网

.htaccess:图像重定向

.htaccess:图像重定向,.htaccess,redirect,.htaccess,Redirect,我看到了这个重写,让图像重定向到一个特定的网页。它允许在我的网站和其他网站上使用图像 RewriteCond %{HTTP_REFERER} ^$ RewriteCond %{REQUEST_URI} ^/uploads/(\d+)-(.+)\.(png|gif|jpe?g|bmp)$ [NC] RewriteRule (.*) http://www.sitename.com/view/%1-%2/ 如果我尝试直接从地址栏访问图像,并且当前正在查看我的站点,这将非常有用。我注意到的问题是

我看到了这个重写,让图像重定向到一个特定的网页。它允许在我的网站和其他网站上使用图像

RewriteCond %{HTTP_REFERER} ^$
RewriteCond %{REQUEST_URI}  ^/uploads/(\d+)-(.+)\.(png|gif|jpe?g|bmp)$  [NC]
RewriteRule (.*)  http://www.sitename.com/view/%1-%2/
如果我尝试直接从地址栏访问图像,并且当前正在查看我的站点,这将非常有用。我注意到的问题是,如果用户在另一个站点上写出链接:

<a href="http://www.sitename.com/uploads/123-Charizard.png">Click</a>
它将把他们带到该图像,而不是页面

我应该对重写进行哪些修改,以便将用户重定向到/view/page

编辑:我注意到的另一件事是,当使用上面的重写将图像发布到Facebook时,它不会像以前那样显示缩略图。我想这是无法解决的问题

RewriteCond %{HTTP_REFERER} ^$  [OR]
RewriteCond %{HTTP_REFERER} !^http://domain.com
RewriteCond %{REQUEST_URI}  ^/uploads/(\d+)-(.+)\.(png|gif|jpe?g|bmp)$  [NC]
RewriteRule (.*)  http://domain.com/view/%1-%2/
要防止缓存,请执行以下操作:

<filesMatch "\.(png|jpeg|jpg|gif)$">
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</filesMatch>

当我直接访问图像时会发生什么?打开新窗口,在地址栏中粘贴链接,点击go,它会将我带到图像。但如果我再次点击go,它会将我重定向到/view/页面。第一次,浏览器从缓存中加载图像,所以除了添加“缓存控制”之外,我什么都做不了,但这会增加您使用的带宽!我怎样才能开始添加这个?它会将我的坏宽度增加多少?这取决于有多少文件具有该标题?但若您希望所有图像都具有缓存控制,那个么每次都会从服务器加载图像。