如何将旧的丑陋网址(仍在Google缓存中)重定向到新的工作美化网站?

时间:2011-03-11 19:37:59

标签: apache url mod-rewrite redirect apache2

鉴于:首先我美化了我的网址,现在所有不错的网址都让服务器获取水下难看的网页。大多数人这样做,并使用一些Stackoverflow,它都很好。感谢这个庞大的在线社区。

小问题:但是,google仍然缓存了旧网址,丑陋的网址,我想再次重定向一次,所有通过301可见的永久重定向到漂亮的网址。< / p>

所有以下实例

/xx/yyyyyyy?ln=xx
/yyyyyyy.php?ln=xx
/xx/yyyyyyy.php?ln=xx

永远重定向(及其后):

/xx/yyyyyy

当没有给出语言时:

/yyyyyyy
/yyyyyyy.php

将这两者重定向到:

/en/yyyyyyy

(图例:yyyyyyy.php =网页名称,如index.php和/xx/ = 2个字符国家/地区代码(可选),当给出NO xx时,。

什么金重写规则让这个梦想成真? 您的意见深受我的赞赏。我将所有建议视为可能的答案。

1 个答案:

答案 0 :(得分:1)

请尝试以下规则:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)(ln=[a-z]{2})&+(.*)
RewriteCond %3&%1%4 ^ln=([a-z]{2})&+(.*)
RewriteRule ^/([a-z]{2}/)?(.+)(\.php)?$ /%1/$1?%2 [L,R=301]

RewriteCond $0 !^/[a-z]{2}(/|$)
RewriteRule ^/(.+)(\.php)?$ /en/$1 [L,R=301]

但如果你用PHP做这件事可能要容易得多,因为mod_rewrite的表现力非常有限。