使用RewriteRule进行htaccess 301重定向

时间:2014-09-26 23:13:18

标签: .htaccess redirect

我正在使用;

RewriteRule ^link1/([^/]*)/([^/]*)/link2-/([^/]*)$ link.php?var1=$1&var2=$2&var3=$3

上周我已将我的站点地图发送给Google,但我意识到我已使用link2*而不是link2-,所以我需要将所有目录link2-重定向到{{1}与301。

link2*

应该使用301重定向到

http://www.domain.com/link1/link2-/var1/var2/var3

现在我们的网站都列出了link2-和link2 *我们知道谷歌不喜欢重复页面。

当我这样做时

http://www.domain.com/link1/link2*/var1/var2/var3 

重定向到

RedirectMatch 301 /link1/link2-/var http://www.domain.com/link1/link2*/var

表示重定向与重写混合......

我知道这有点复杂,但我真的需要帮助......

2 个答案:

答案 0 :(得分:0)

在这种情况下,您不想使用RedirectMatch,因为它是一个不同的模块(mod_alias),它将与您的所有mod_rewrite规则一起应用并导致冲突。改为使用mod_rewrite:

RewriteRule ^(.*)/link2-(.*)$ /$1/link2*$2 [L,R=301]

*最终会被浏览器编码,但它看起来像是:%2A

答案 1 :(得分:0)

我使用了标题(“HTTP / 1.1 301永久移动”);用PHP而不是htaccess希望它不会成为谷歌的问题.. Thx