2015-07-23 5 views
0

У меня был сайт с /contact.aspx который получает успешную редирект /contact Но я хочу, чтобы перенаправить мой старый /content.aspx?contentid=123 к /about/123 Вот мое Перенаправление XML часть в моем web.config:iis7 URL Rewrite для WebForms ASPX на страницу Mvc

<rewrite> 
    <rules> 
     <rule name="contact" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="contact.aspx" /> 
      <action type="Redirect" url="Contact" redirectType="Found" /> 
     </rule> 
     <rule name="Content" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="content.aspx?contentID=*" /> 
      <action type="Redirect" url="About/{R:1}" appendQueryString="false" redirectType="Found" /> 
     </rule> 
    </rules> 
</rewrite> 

Посещение mydomain.com/content.aspx?contentid=123 дает мне 404. также попытался без appendQueryString="false" Кажется легко исправить меня, но я что-то отсутствует ...

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

<rule name="Content"> 
    <match url="content.aspx?contentID=([0-9]+)" /> 
    <action type="Redirect" url="About/{R:1}" redirectType="Found" /> 
</rule> 

ответ

0

От IIS rewrite module configuration documentation.

В URL строку, которая вычисляется с шаблоном не включает в себя строку запроса. Чтобы включить строку запроса в оценку правила, вы можете использовать серверную переменную QUERY_STRING в условии правила.

Так после большого испытательного козни, я думаю, что это должно работать:

<rule name="Content" patternSyntax="ECMAScript" stopProcessing="true"> 
    <match url="content.aspx" /> 
    <conditions> 
     <add input="{QUERY_STRING}" pattern="contentID=([^&amp;]+)" /> 
    </conditions> 
    <action type="Redirect" url="About/{C:1}" redirectType="Found" appendQueryString="False" /> 
</rule> 
+0

Кажется почти сразу. Я получил: Ошибка? Aspxerrorpath =/О программе/192, когда О программе/192 работает. –

+0

Хм ... Я не могу понять, почему, но должна быть какая-то разница. Похоже, что у вас есть пользовательские ошибки, можете ли вы отключить их, чтобы увидеть фактическую страницу с ошибкой? –

+0

Возможно, проблема кеширования, потому что она работает сейчас. Спасибо, отмечен как принято. –

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

  • Нет связанных вопросов^_^