Url Rewrite в IIS 7.5 вызывает ошибку внутреннего сервера

У меня есть веб-приложение, запускающее @Windows 2008 R2, ASP.NET v4.0.

Я установил модуль Url Rewrite и начал использовать его, как показано в официальных примерах.

Моя проблема начинается, когда тег <rewrite> добавляется в web.config под <system.webServer> - фактически, когда я пытаюсь перейти на любую страницу в этом текущем приложении, я получаю 500 - Internal server error.

Это блок <rewrite>, который я добавлял:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="test1">
                <match url="^default/([0-9]+)/([_0-9a-z-]+)" />
                <action type="Rewrite" url="default.aspx?id={R:1}&amp;title={R:2}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

Ответы

Ответ 1

Просто была такая же ошибка и найдена исправление. Вам необходимо установить модуль для IIS для перезаписи URL. вы можете загрузить его здесь: http://www.iis.net/download/URLRewrite

Приветствия,

Ответ 2

У меня также был установлен модуль Url Rewrite 2.0. Однако в какой-то момент я также удалил и переустановил iis7, поэтому считаю, что модуль перезаписи не был зарегистрирован должным образом в iis. Я получал ту же ошибку, что и выше, даже если я просто добавил пустой набор тегов в web.config.

Моим решением было удалить модуль Url Rewrite (через программы и компоненты) и переустановить его с помощью установщика Web Platform. Я остановил iis7 во время установки (не уверен, что это важно). Мне не нужно было перезагружаться.

Ответ 3

Installer расширения URL Rewrite Module устанавливает схему раздела перезаписи, определенную в файле C:\Windows\System32\Inetsrv\Config\схема\rewrite_schema.xml.