0

我被要求将两个页面重定向到不同的 url。它正在工作,除了由于现有的 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

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

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

4

1 回答 1

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]
于 2012-09-20T16:26:57.083 回答