Apache 重定向重写规则,在url末尾添加参数

Apache 重定向重写规则,在url末尾添加参数,apache,mod-rewrite,url-redirection,Apache,Mod Rewrite,Url Redirection,如果/c/是URL参数的一部分,那么我想在URL参数的末尾添加参数。因为参数可能增加或减少 http://example.com/c/file.php?par1=val1&par2=val2 我需要像这样在URL的末尾添加两个参数&addpar1=val&addpar2=val http://example.com/c/file.php?par1=val1&par2=val2&addpar1=val&addpar2=val 我在这里要做的是:

如果/c/是URL参数的一部分,那么我想在URL参数的末尾添加参数。因为参数可能增加或减少

    http://example.com/c/file.php?par1=val1&par2=val2
我需要像这样在URL的末尾添加两个参数
&addpar1=val&addpar2=val

    http://example.com/c/file.php?par1=val1&par2=val2&addpar1=val&addpar2=val
我在这里要做的是:

     RewriteEngine On
     RewriteCond %{REQUEST_URI} ^/c/(.*)$ [NC]
     RewriteRule /c/ /%1 [QSA]

请建议我在这里重写规则时应该写些什么。

您的规则很接近,但实际上并没有向查询字符串添加任何内容。尝试:

 RewriteEngine On
 RewriteCond %{QUERY_STRING !&addpar1=val&addpar2=val
 RewriteRule ^/?c/(.*)$ /%1?%{QUERY_STRING}&&addpar1=val&addpar2=val [L]
在这里,您需要检查参数是否已经添加,然后将它们添加到查询字符串的末尾。您不希望在此处使用
QSA
标志,因为您正在手动进行追加

如果要重定向浏览器,使其看到查询字符串,则需要方括号中的
R
R=301
标志(用逗号分隔)