0

我有一个 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]

任何帮助表示赞赏。

4

1 回答 1

2

看看QSA 标志

如果你使用

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

不应覆盖查询字符串。

于 2013-05-14T12:06:10.830 回答