Правило перезаписи URL, вызывающее хаос - PullRequest
0 голосов
/ 10 февраля 2012

Первое правило перезаписи (ниже), «Перезаписать на читаемый URL», работает отлично.Второе правило, «Удалить префикс WWW», удаляет префикс WWW из URL, поэтому это:

http://www.mydomain.com/blog...

Вот как это делается:

http://mydomain.com/blob...

Теперь это вызывает небольшой хаос.Хотя статья загружается нормально, если правило должно работать, например, присутствует WWW, URL-адрес в адресной строке браузера, к сожалению, изменяется на нечитаемую версию, например:

http://mydomain.com/blog/article.asp?id=1&title=blog-title

Но перезапись сработалаWWW была удалена.Но почему он изменился с дружественного URL на не дружественный URL?Кто-нибудь может заметить мою ошибку или предложить, как исправить это?

Это часть моего файла web.config:

<rules>
    <rule name="Rewrite to readable URL">
          <match url="^blog/([0-9]+)/([_0-9a-z-]+)" />
          <action type="Rewrite" url="blog/article.asp?id={R:1}&amp;title={R:2}" />
    </rule>
    <rule name="Remove WWW prefix" >
        <match url="(.*)" ignoreCase="true" />
        <conditions>
        <add input="{HTTP_HOST}" pattern="^www\.mydomain\.com" />
        </conditions>
        <action type="Redirect" url="https://mydomain.com/{R:1}" redirectType="Permanent" />
    </rule>
</rules>

1 Ответ

1 голос
/ 10 февраля 2012

Похоже, что вы перенаправляете результат процесса перезаписи в перенаправление. Попробуйте изменить порядок двух правил.

Чтобы немного больше контролировать, вы также можете добавить stopProcessing = ”true” к тегу правила.

В вашем случае переписывание и перенаправление должны быть полностью отдельными процессами.

...