1

我有一个基本的重写规则将所有/pagenames/变成index.php?page=pagename

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)/$ /index.php?page=$1 [L]

这工作正常,但我现在需要将所有旧流量从谷歌重定向到新网址。当我添加以下内容时:

Redirect 301 /pagename.php http://www.website.co.uk/pagename/

所有页面都重定向到:

http://www.website.co.uk/?page=pagename

有人可以帮我弄清楚为什么吗?

谢谢丹

4

1 回答 1

2

您最好不要为此混合 mod_alias 和 mod_rewrite 并通过 mod_rewrite 本身处理所有规则以便更好地控制:

RewriteRule ^(pagename/?)$ http://www.website.co.uk/$1 [R=302,L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)/$ /index.php?page=$1 [L,QSA]

这些规则的排序在这里很重要。

确认它工作正常后,替换R=302R=301. R=301在测试你的 mod_rewrite 规则时避免使用(永久重定向)。

于 2013-06-06T12:36:42.570 回答