ISAPI 重写:将查询字符串附加到重写的 URl 的查询字符串

ISAPI Rewrite : Append querystring to the rewrited URl's Query String

实际上,使用以下 ISAPI 规则

RewriteCond %{HTTP:Host} ^domain.com$
RewriteRule ^/Product-name/$ /test.cfm?ProductID=xxxx [NC,L]

我正在重写以下内容 URL

htttp://www.domain.com/Product-name/

htttp://www.domain.com/test.cfm?ProducID=xxxx

这工作正常,但是当我在 URL 中使用查询字符串时,它不工作

对于鸡蛋: 以下 URL 无效

htttp://www.domain.com/Product-name?categoryID=YYYY

我需要将上面的URL重写如下

htttp://www.domain.com/test.cfm?ProducID=xxxx&categoryID=YYYY

我使用了以下规则,但没有成功

RewriteCond %{QUERY_STRING} ^param=(\d+)$ [NC] 
RewriteRule ^/Product-name/$ /test.cfm?ProductID=xxxx?param2=%1? [NC,L]

请问有什么解决办法吗?

如果您使用的是 ISAPI_Rewrite 3,那么您应该添加 QSA 标志以将原始查询字符串附加到结果 URL:

RewriteRule ^/Product-name/$ /test.cfm?ProductID=xxxx [NC,L,QSA]

以下规则,将查询字符串追加到重写的URL的查询字符串中,避免了404错误

URL 带有查询字符串和尾部斜杠 (/)

RewriteRule ^/Product-name/\? /test.cfm?ProductID=xxxx [NC,L,QSA]

URL 带有查询字符串且没有尾部斜杠 (/)

RewriteRule ^/Product-name\? /test.cfm?ProductID=xxxx [NC,L,QSA]

URL 没有查询字符串和尾部斜杠 (/)

RewriteRule ^/Product-name/$ /test.cfm?ProductID=xxxx [NC,L]

URL 没有查询字符串和尾部斜杠 (/)

RewriteRule ^/Product-name$ /test.cfm?ProductID=xxxx [NC,L]