mod_rewrite之后的GET变量

时间:2011-11-22 14:53:45

标签: php apache .htaccess mod-rewrite

我有一组符合以下htaccess规则的产品页面:

RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_URI} ^/([0-9]+)\-(.+)\.html
RewriteRule ^(.*)$ /product/index.php?prod=%1-%2 [L]

将其重写为:example.com/123-1234.html。

我的问题是我无法再向页面传递额外的$ _GET变量 - IE:example.com/123-1234.html?coupon=something123。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:9)

您正在寻找QSA,查询字符串追加

RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_URI} ^/([0-9]+)\-(.+)\.html
RewriteRule ^(.*)$ /product/index.php?prod=%1-%2 [L,QSA]

答案 1 :(得分:2)

添加QSA标志以传递现有的查询字符串参数

RewriteRule . /product/index.php?prod=%1-%2 [QSA,L]

也编辑匹配为。和^。* $在这种情况下是等价的