将路径转换为查询字符串并保留初始查询字符串参数

时间:2018-04-26 22:40:32

标签: .htaccess mod-rewrite

我有这样的传入路径

http://acme.com/product/xxxxxx?utm_campaign=yyyyy

我需要将其转换为

$http://acme.com/product?id=xxxxx&utm_campaign=yyyyy

参数的数量是任意的,因此可能有1,无或10。

我有这些.htaccess规则,它们接近于工作:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?product/(.*?)/?$ /product?id=$1 [L,QSA]

此代码的问题在于结果最终会出现两个问号。例如:

http://acme.com/product/xxxxxx?utm_campaign=yyyyy

成为

http://acme.com/product?id=xxxxxx?utm_campaign=yyyyy

而不是

http://acme.com/product?id=xxxxxx&utm_campaign=yyyyy

0 个答案:

没有答案