Перенаправление с использованием модуля перезаписи IIS7 - PullRequest
0 голосов
/ 08 марта 2012

Я выполнял действия, описанные в приведенной ниже статье, из ресурсов IIS, чтобы настроить постоянное перенаправление с помощью модуля перезаписи 2.0 на IIS7, используя шаблон для захвата исходного URL-адреса и обслуживания пункта назначения на основе приведенных ниже регулярных выражений.

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module

Исходный (OLD) URL: http://xx.xx.xxx.xx/term/product/term-term/category/example-123/58276 Шаблон: http://xx.xx.xxx.xx/term/([a-z]+)/([a-z-]+)/([a-z]+)/([0-9a-z-]+)/([0-9]+)

Тестирование шаблона для исходного URL в IIS7 работает нормально.Целевой URL, как показано ниже, должен содержать IP-адрес, за которым следуют / product, то есть R: 1 и / 582276, то есть R: 5

Целевой URL: http://xx.xx.xxx.xx/{R:1}/{R:5} Следовательно, фактический целевой (NEW) URLis http://xx.xx.xxx.xx/product/58276

Однако вышеприведенное не работает при использовании браузера и получении раздражающего 404.

Мой web.config выглядит примерно так:

`

        <rules>

            <rule name="PatternRedirect" stopProcessing="true">

                <match url="http://xx.xx.xxx.xx/term/([a-z]+)/([a-z-]+)/([a-z]+)/([0-9a-z-]+)/([0-9]+)" />

                <action type="Redirect" url="http://xx.xx.xxx.xx/{R:1}/{R:5}" />

            </rule>

        </rules>

    </rewrite>

    <httpRedirect enabled="true" destination="" exactDestination="true" httpResponseStatus="Permanent" />

`

Есть идеи?

Спасибо

1 Ответ

1 голос
/ 08 марта 2012

Входное значение для сопоставления с образцом - это часть пути URL, исключая начальный / (косая черта).Атрибут url элемента match должен начинаться с «term»:

<match url="term/([a-z]+)/([a-z-]+)/([a-z]+)/([0-9a-z-]+)/([0-9]+)" />

Если вы хотите убедиться, что правило применяется только к запросам на хост xx.xx.xxx.xx, добавьте условие:

<conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" pattern="^xx.xx.xxx.xx$" />
</conditions>
...