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

时间:2013-08-29 05:38:24

标签: apache mod-rewrite url-redirection

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

    http://example.com/c/file.php?par1=val1&par2=val2

我需要在网址末尾添加两个参数&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]

请建议我在RewriteRule写下这些内容。

1 个答案:

答案 0 :(得分:3)

您的规则已接近,但您实际上并未在查询字符串中添加任何内容。尝试:

 RewriteEngine On
 RewriteCond %{QUERY_STRING !&addpar1=val&addpar2=val
 RewriteRule ^/?c/(.*)$ /%1?%{QUERY_STRING}&&addpar1=val&addpar2=val [L]

在这里,您需要检查是否已添加参数,然后将它们添加到查询字符串的末尾。您不希望此处显示QSA标记,因为您手动执行追加。

如果您想重定向浏览器以便他们看到查询字符串,那么您需要在方括号中加上RR=301标记(以逗号分隔)。