Как вы переопределяете параметр Tuckey use-query-string? - PullRequest
1 голос
/ 16 апреля 2011

Я пытаюсь добавить параметр запроса в перенаправленный URL-адрес, например, в urlrewrite.xml:

<rule>
    <condition name="host">www.foo.com</condition>
    <from>^/foo/bar</from>
    <to type="redirect" last="true">http://www.bar.com/foo/bar?test=testString</to>
</rule>

Но входящий запрос уже содержит параметр, и в результате перенаправленный URL-адрес выглядит так::

http://www.bar -d.mtvi.com / foo / bar? Test = testString? Test2 = test2String

обратите внимание на второе "?".

То, что я хочу, это:
http://www.bar-d.mtvi.com/foo/bar?test=testString&test2=test2String

use-query-string установлен в "true" в элементе urlrewrite.

Вопрос: Как правильно передать строку запроса?

Спасибо за ваше внимание и за любые ценные предложения !!

1 Ответ

1 голос
/ 18 апреля 2011

Хорошо, я понял это. Это происходило из-за того, что я не закрыл совпадение "from" символом "$". Вот как это должно выглядеть:

<rule>
    <condition name="host">www.foo-d.com</condition>
    <from>^/foo/bal(\?)?(.*)?$</from>
    <to type="redirect" last="true">http://www.bar-d.mtvi.com/foo/bar?test=testString&amp;$2</to>
</rule>

Единственная проблема здесь заключается в том, что если в исходном запросе нет строки запроса, stmt «to» по-прежнему добавляет амперсанд в конце строки запроса. Чтобы обойти это, вы можете создать 2 правила перезаписи, одно из которых соответствует строке запроса, а другое - без.

...