htaccess lang前缀和查询字符串

时间:2013-05-14 11:33:08

标签: .htaccess

我有一个htaccess,它在所有文件的特定文件夹上添加一个lang前缀

htaccess规则

RewriteRule ^fr/folder/(.*)$                /folder/$1?lang=1 [L]
RewriteRule ^en/folder/(.*)$                /folder/$1?lang=2 [L]

根据上述规则,我可以重定向

/en/folder/myscript.php to /folder/myscript.php?lang=1

并且工作正常。

现在我想找到一种方法来添加查询字符串(如果有的话)

例如

/en/folder/myscript.php?id=100 to /folder/myscript.php?lang=1&id=100

我尝试使用下面的代码,但没有运气

RewriteCond %{QUERY_STRING} !^lang=1
RewriteRule ^el/folder/(.*)$                /folder/$1?lang=1&%1 [L]

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

查看QSA flag

如果您使用

RewriteRule ^fr/folder/(.*)$                /folder/$1?lang=1 [L, QSA]
RewriteRule ^en/folder/(.*)$                /folder/$1?lang=2 [L, QSA]

不应覆盖查询字符串。