Измените страницу перенаправления 404 со страницы по умолчанию на пользовательскую страницу. - PullRequest
0 голосов
/ 01 августа 2011

Я пытаюсь создать пользовательскую страницу перенаправления для 404 ошибок. На данный момент страница хоста отличается от страницы с сервером ошибок, файл My web.config находится ниже. Когда я закомментирую теги customError, на хост-сервере будет отображаться страница по умолчанию, я хочу изменить ее на пользовательскую страницу "404.html". Когда я раскомментирую это, он, вероятно, пытается переопределить значение по умолчанию, но выдает внутреннюю ошибку сервера !!

<?xml version="1.0" encoding="UTF-8"?>

    Please refer to machine.config.comments for a description and
    the default values of each configuration section.

    For a full documentation of the schema please refer to
    http://go.microsoft.com/fwlink/?LinkId=42127

    To improve performance, machine.config should contain only those
    settings that differ from their defaults.

<configuration>
   <system.webServer>
        <customErrors mode="On">
            <error statusCode="404" redirect="/404.html" />
        </customErrors>
        <!--<httpErrors> 
        <remove statusCode="404" subStatusCode="-1" />                
        <error statusCode="404" path="/404.html" responseMode="ExecuteURL" />          
      </httpErrors>-->       
      <modules runAllManagedModulesForAllRequests="true"/>
   </system.webServer>
</configuration>

1 Ответ

1 голос
/ 02 августа 2011

Объявление 404 не входит в тег customErrors, вот что вам нужно:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="DetailedLocalOnly">
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" prefixLanguageFilePath="" path="/404.html" responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>
</configuration>

Попробуйте установить web.config именно на это и посмотрите, работает ли он, тег customErrors больше подходит для страниц .NET, чем классический ASP, даже классический 500:100 объявляется в разделе httpErrors, а не в CustomErrors.

Это взято из известного рабочего web.config с удалением ненужных битов. Вы можете отправить его на страницу ASP, используя ExecuteURL, что означает, что вы можете обрабатывать 404 с умом, например, перенаправить или предложить страницу результатов поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...