2013-09-13 1 views
1

У меня есть это правило перезаписи IISIIS перенаправляет удалить папку добавления дополнительных слэш

<rule name="Redirect rule for aliased Pages"> 
    <match url="^/pages/(.*)" /> 
    <action type="Redirect" url="{R:1}" /> 
</rule> 

Идея заключается в том, что она должна перенаправить http://mydomain.com/pages/about-us/ на http://mydomain.com/about-us/. Согласно тестеру в IIS, в этом случае R: 1 - около-us /, но перенаправление всегда идет до http://mydomain.com//about-us/ (см. Double //). Я попытался удалить оба косая черта с URL-адреса соответствия и оставить каждый из них сам по себе, и это, похоже, не имеет никакого значения.

Любая идея, откуда эта дополнительная/исходит?

ответ

1

Модуль URL переписывания начинает проверку после первоначального слэш, так что следующее будет удалить первую папку уровня "страницы":

<rule name="Redirect rule for aliased Pages"> 
    <match url="^pages/(.*)" /> 
    <action type="Redirect" url="{R:1}" /> 
</rule> 

Тестирование с:

Как и ожидалось.

Обратите внимание, что если у вас есть правила перезаписи в отдельном файле, вам нужно будет переработать пул приложений или перезапустить IIS для изменений в работе.

Также очень важен порядок правил.

+0

Все, что я могу сказать, это работает как ожидается. –