htaccess rewriterule语言重定向

时间:2013-09-22 04:33:34

标签: .htaccess mod-rewrite

我想让我的新网站项目多语言化。我的想法是将文件重定向到一个虚构的语言文件夹(如www.domain.com/en/sub/content.php等)。

RewriteRule ^en/(.*)$ /$1?lang=en [L]
RewriteRule ^de/(.*)$ /$1?lang=de [L]
RewriteRule ^es/(.*)$ /$1?lang=es [L]
RewriteRule ^ru/(.*)$ /$1?lang=ru [L]

它适用于物理存在的测试文件,甚至可以在几个文件夹中...

但它与另一次重写无法合作。
将“www.domain.com/liga.php?whatleague=firstleague&matchday=7”看作“www.domain.com/firstleague/2013/7/” 我用过:

RewriteRule ^firstleague/2013/([0-9]+)/?$ /liga.php?whatleague=firstleague&matchday=$1 [L]

单独重定向工作正常,但是当我添加语言文件夹(www.domain.com/de/firstleague/2013/7/)时,“lang”参数不会被传递。
我试过它在htaccess文件中的顺序不同,但结果相同。

PS:英语不是我的主要语言。

1 个答案:

答案 0 :(得分:0)

您不需要其他规则,只需在QSA文件夹中添加firstleague标记:

RewriteRule ^en/(.*)$ /$1?lang=en [L,QSA]
RewriteRule ^de/(.*)$ /$1?lang=de [L,QSA]
RewriteRule ^es/(.*)$ /$1?lang=es [L,QSA]
RewriteRule ^ru/(.*)$ /$1?lang=ru [L,QSA]

RewriteRule ^(firstleague)/2013/([0-9]+)/?$ /liga.php?whatleague=$1&matchday=$2 [L,QSA]