添加301重定向到wp站点(使用现有规则)

时间:2012-09-20 16:16:54

标签: .htaccess

我被要求将两个页面重定向到另一个网址。它正在工作,但由于现有的WP重写规则,我在url的末尾得到一个尾随反斜杠。我需要重定向这些页面,但保留WP规则对于不重定向的页面。 以下是现有的WP规则:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

我想补充一下:

Options +FollowSymLinks
RewriteEngine on

Redirect 301 /*old url* http://*new url*/about.html
Redirect 301 /*old url* http://*new url*.com/tour.html

当我这样做时,它会重定向到: 新url.com/tour.html/ 并且反斜杠导致问题

我是一个总的.htaccess新手。 谢谢, 马特

1 个答案:

答案 0 :(得分:0)

这是mod_alias和mod_rewrite相互干扰的情况,因为它们都是URI文件映射管道的一部分,所以一旦mod_alias执行它的东西(Redirect指令)并标记要重定向的URI ,mod_rewrite然后做它的事情并重写URI。所以在URI文件映射管道的末尾,你有一个301重定向但是URI被mod_rewrite破坏了。

你可以坚持使用mod_rewrite来实现它,这样wordpress规则就不会被应用了。你还需要在你的wordpress规则之前添加你的重定向,所以之前 # BEGIN WordPress添加:

RewriteEngine On
RewriteRule ^/?old_url http://new_url/about.html [L,R=301]
RewriteRule ^/?old_url2 http://new_url/tour.html [L,R=301]