Regex Mod rewrite catch get查询并添加另一个查询字符串

Regex Mod rewrite catch get查询并添加另一个查询字符串,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,当用户输入 我必须抓住机会,让它像 我尝试的是: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !\.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteCond %{QUERY_STRING} . RewriteRule ^inbox.php?(

当用户输入

我必须抓住机会,让它像

我尝试的是:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !\.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{QUERY_STRING} .

RewriteRule ^inbox.php?(.*) inbox.php?$1&lang=en [NC,L]

但它不起作用。我只得到$\u get中的LANG值。我该怎么做呢?

您可以将此简化规则与否定条件和
QSA
标志一起使用:

RewriteCond %{QUERY_STRING} !(?:^|&)lang=en(?:&|$) [NC]
RewriteRule ^inbox\.php$ $0?lang=en [NC,L,QSA]

@阿努巴瓦对不起我的错误。更正了。下面是lang=enok,答案应该有用,谢谢。你能给我解释一下,让我更好地理解它吗?为什么我应该使用QSA,第一行是什么意思?
QSA
是查询字符串追加,以在现有查询字符串中添加新参数。条件是检查查询字符串中是否已经有
lang=en