.htaccess重写与$ _GET参数的冲突

时间:2011-03-08 17:07:56

标签: php apache .htaccess

因此,集成了将$ _GET参数传递给我们产品页面的第三方跟踪服务。该页面在.htaccess中重写,它们以问号(?)开头传递查询字符串,$ _GET除非是&符号(&),否则不会提取它。

所以这就是htaccess重写。

RewriteRule ^the-url/(.*?)/(.*?)/?$ /the-page.php?slug=$1/$2 [L]

这有效

http://www.site.com/the-url/someones-name/a-title&something=4

这不是(但我需要它。注意问号而不是&符号)

http://www.site.com/the-url/someones-name/a-title?something=4

由于

1 个答案:

答案 0 :(得分:4)

我猜你必须使用[QSA]标志:

RewriteRule ^the-url/(.*?)/(.*?)/?$ /the-page.php?slug=$1/$2 [L,QSA]

如果设置了此标志,则将追加给定的查询字符串(QSA = Query-String Append),而不是删除。