鉴于:首先我美化了我的网址,现在所有不错的网址都让服务器获取水下难看的网页。大多数人这样做,并使用一些Stackoverflow,它都很好。感谢这个庞大的在线社区。 p>
小问题:但是,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时,。
什么金重写规则让这个梦想成真? 您的意见深受我的赞赏。我将所有建议视为可能的答案。
答案 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的表现力非常有限。