2016-04-09 5 views
2

Я думаю, что я пытаюсь сделать что-то, что должно быть простым. Я хочу иметь правила перезаписи, который принимает любой входящий запрос, из многих областей, и переписывает его /redirect.aspx?src=original URLПравила перезаписи IIS не передают параметр запроса

Это то, что у меня есть

<rewrite> 
    <rules> 
    <rule name="SimpleURL" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{URL}" negate="true" pattern="\.aspx$"/> 
     </conditions> 
     <action type="Redirect" url="/Redirect.aspx?src={R:0}" appendQueryString="true" redirectType="Permanent" /> 
    </rule> 
    </rules> 
</rewrite> 

Он работает за исключением Параметр запроса передается src = без какого-либо значения.

Я сделал изменения, так что сейчас проходит жесткий кодированный значение параметра запроса

I made a change so it is now passing a value for the parameter. 


<rewrite> 
    <rules> 
    <rule name="SimpleURL" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{URL}" negate="true" pattern="\.aspx$"/> 
     <add input="{QUERY_STRING}" pattern="src=(.*)" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="/Redirect.aspx?src=foobar" appendQueryString="true" redirectType="Found" /> 
    </rule> 
    </rules> 
</rewrite> 

Если я заменю Foobar с {R: 0}, не передается никакой ценности. введите код здесь. Передано твердое кодированное значение foobar.

ответ

0

Ваше правило отлично выглядит и отлично работает на моей машине, однако вы используете постоянную переадресацию. Вы вносили какие-либо изменения в правило во время тестирования? Попробуйте протестировать его в браузере Incognito/Private или протестируйте другой URL-адрес.

Попробуйте следующее правило:

<rule name="SimpleURL" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions trackAllCaptures="true"> 
    <add input="{URL}" negate="true" pattern="\.aspx$"/> 
    <add input="{QUERY_STRING}" pattern="src=(.*)" negate="true" /> 
    <add input="{URL}" pattern="(.*)" /> 
    </conditions> 
    <action type="Redirect" url="/Redirect.aspx?src={C:2}" appendQueryString="true" redirectType="Found" /> 
</rule> 
+0

Я сделал изменения, так что теперь передавая значение для параметра –

+0

я добавил правило к моему первоначальному ответу. Посмотрите, разрешит ли он вашу проблему. –

Смежные вопросы