IIS7.5 URLRewrite не работает на пользовательской странице ошибки 404 - PullRequest
0 голосов
/ 08 июня 2018

Я использую URL Rewrite на IIS 7.5, чтобы скрыть заголовок раскрытия сервера для приложения ASP.NET Webforms, и в моем основном приложении все работает нормально.Однако при пользовательской обработке ошибок перезапись вообще не запускается.

В моем web.config:

    <outboundRules>
        <remove name="Remove Server header" />
        <rule name="Remove Server header" enabled="true">
            <match serverVariable="RESPONSE_SERVER" pattern=".+" />
            <action type="Rewrite" value=" " />
        </rule>
    </outboundRules>

Также в разделе:

<modules runAllManagedModulesForAllRequests="true" />

Ошибки HTTP:

<httpErrors errorMode="Custom">
  <remove statusCode="404" />
  <error statusCode="404" responseMode="ExecuteURL" path="/404Check.aspx" />
</httpErrors>

Пользовательские ошибки:

  <customErrors mode="On" >
      <error statusCode="404" redirect="~/404Check.aspx"/>
 </customErrors>

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

Что-то мне не хватает?

1 Ответ

0 голосов
/ 08 июня 2018

На самом деле нашел отличный ответ на это в другом месте.Проблема заключалась в том, чтобы сделать внутреннее перенаправление на страницу 404, которая, по-видимому, полностью обходила URLRewrite.

Использование ExecuteURL в качестве обработчика 404 в web.config обойдёт перезапись URL (т.е. .. outboundRules), в то время какиспользование других режимов ответа не будет

...