301 перенаправление не работает в IIS 7 - PullRequest
0 голосов
/ 12 января 2012

Мне нужно создать это правило перенаправления 301: /blog/item.asp?n=12817 перенаправление на /blog/item/12817

Я создал правило в модуле перезаписи URL IIS со следующими параметрами:

Шаблон: ^blog/item.asp\?n=([0-9]+)

URL-адрес перенаправления: blog/item/{R:1}

Когда я тестирую его в IIS, он работает нормально, и он создал это правило в моем web.config:

<rule name="Asp classic Legacy 301 redirect" stopProcessing="true">
   <match url="^blog/item.asp\?n=([0-9]+)" />
   <action type="Redirect" url="blog/item/{R:1}" appendQueryString="true" />
</rule>

Но все же, когдаЯ перехожу на /blog/item.asp?n=12817 в браузере, он показывает мне The resource cannot be found. ошибка с текстом Requested URL: /blog/item.asp

Почему это может быть?Нужно ли переключать что-то еще куда-нибудь?

Спасибо

1 Ответ

3 голосов
/ 13 января 2012

Хорошо, я создал другое правило, которое работает:

<rule name="Asp classic legacy 301 redirect">  
  <match url="blog/item\.asp$" />  
    <conditions>  
      <add input="{QUERY_STRING}" pattern="n=(\d+)" />  
    </conditions>  
    <action type="Redirect" url="blog/item/{C:1}" redirectType="Permanent" appendQueryString="false"/>  
</rule> 

Все еще задаетесь вопросом, почему модуль перезаписи Url генерирует правила, которые не работают?

...