.htaccess htaccess重写规则语言重定向

.htaccess htaccess重写规则语言重定向,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我想使我的新网站项目多语言。我的想法是将文件重定向到一个虚构的语言文件夹(如www.domain.com/en/sub/content.php等) 它适用于物理上存在的测试文件,甚至包括一些文件夹 但再加上另一次重写,它就不起作用了。 让“www.domain.com/liga.php?whatleague=firstleague&matchday=7”看起来像“www.domain.com/firstleague/2013/7/” 我使用: RewriteRule ^firstleague/2

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

它适用于物理上存在的测试文件,甚至包括一些文件夹

但再加上另一次重写,它就不起作用了。
让“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]
重定向本身工作正常,但在添加language文件夹(www.domain.com/de/firstleague/2013/7/)时,无法传递“lang”参数。
我在htaccess文件中尝试了不同的顺序,但结果相同


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

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

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]
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]