ISAPI Rewrite: добавить строку запроса к переписанной строке запроса URl.

На самом деле, используя следующее правило ISAPI

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

Я переписываю следующий URL

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

to

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]

Так есть ли какое-нибудь решение для этого?


person Rajesh Manilal    schedule 09.06.2015    source источник
comment
Почему это помечено как ColdFusion?   -  person Scott Stroz    schedule 09.06.2015
comment
@ScottStroz Это приложение Coldfusion, поэтому помечено. Ничего кроме этого.   -  person Rajesh Manilal    schedule 09.06.2015
comment
Но проблема никак не связана с ColdFusion.   -  person Scott Stroz    schedule 09.06.2015
comment
Да, вы правы, спасибо за удаление тега   -  person Rajesh Manilal    schedule 09.06.2015


Ответы (2)


Если вы используете ISAPI_Rewrite 3, вам следует добавить флаг QSA, чтобы добавить исходную строку запроса к результирующему URL-адресу:

RewriteRule ^/Product-name/$ /test.cfm?ProductID=xxxx [NC,L,QSA]
person TonyCool    schedule 09.06.2015
comment
Да, я использую Helicon ISAPI_ Rewrite3, но у меня это правило не работает, та же ошибка 404. - person Rajesh Manilal; 09.06.2015

Следующее правило добавляет строку запроса к переписанной строке запроса 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]
person Rajesh Manilal    schedule 10.06.2015