Htaccess图像重定向到页面

时间:2017-10-03 22:34:43

标签: wordpress .htaccess redirect

如何在.htaccess这些类型的网址中重定向:

example.com/wp-content/uploads/summer-fashion-1680x1050.jpg

这些帖子?

example.com/summer-fashion

1 个答案:

答案 0 :(得分:0)

在现有的WordPress(前端控制器)指令之前,您可以在.htaccess中执行以下操作:

RewriteRule ^wp-content/uploads/(\w+)-\d{2,4}x\d{2,4}\.jpg$ /$1 [R,L]

但是,如果您试图在页面本身上显示/wp-content/uploads/summer-fashion-1680x1050.jpg(我怀疑您正在尝试这样做?),您自然会遇到问题,因为此请求也会被上述指令捕获并且您和#39;将获得无限循环。

防止这种情况的一种方法"循环"是在页面中使用时将附加查询字符串附加到图像URL的末尾,并修改上述指令,以便仅在URL上不存在该查询字符串时重定向。例如:

RewriteCond %{QUERY_STRING} !^noredirect=1$
RewriteRule ^wp-content/uploads/(\w+)-\d{2,4}x\d{2,4}\.jpg$ /$1 [R,L]

并链接到您的图片:

<img src="https://example.com/wp-content/uploads/summer-fashion-1680x1050.jpg?noredirect=1" alt="">

然而,这可能很难维护并且不会对用户隐藏(如果这是意图) - 因此很容易被规避。它也可能是SEO(图像搜索 - 如果这是一个convern)的问题,除非你采取额外的措施来防止URL参数被索引。

另一个选项是检查HTTP Referer标头,只有在Referer 您的网站时才会重定向。例如:

RewriteCond %{HTTP_REFERER} !^http://example\.com
RewriteRule ^wp-content/uploads/(\w+)-\d{2,4}x\d{2,4}\.jpg$ /$1 [R,L]

然而,这也是有问题的,并非100%可靠。浏览器可能不会发送Referer标头,而Referer可能会伪造。