我正在配置从 Html 静态网站到 Wordpress 的重定向,我在 .htaccess 文件中手动执行此操作,并且对于我正在使用的一些其他规则重定向插件
我已将这些规则添加到我的.htaccess中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteCond %{THE_REQUEST} (\.htm|\.html)
RewriteRule ^(.*)(\.htm|\.html)$ http://www.mywebsite.com/wordpress/$1 [R=301,L]
..
它们可以很好地将旧的 html 文档重定向到没有文件扩展名的新 wordpress 安装。
我在尝试添加图像所需的重定向时遇到问题。我尝试添加此规则,但尝试访问 .jpg 文件时出现重定向循环:
RewriteCond %{THE_REQUEST} \.jpg
RewriteRule ^(.*\.jpg)$ /wordpress/wp-content/uploads/2016/02/$1 [R=301,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
...
我怎样才能正确地做到这一点?
答案1
如果你的图片位于子目录中,例如images
解决方案很简单
RewriteRule ^/images/(.*\.jpg)$ wordpress/wp-content/uploads/2016/02/$1 [R=301,L]
如果图像位于随机位置或根目录中。
RewriteCond %{REQUEST_URI} !^/wordpress/wp-content/uploads/
RewriteRule ^(.*\.jpg)$ /wordpress/wp-content/uploads/2016/02/$1 [R=301,L]
重点是,RewriteRule
重定向到 wordpress 目录后,您的目录再次匹配。(它匹配任何jpg)。你必须找到一种方法来不匹配新的基于 wordpress 的文件。