将404重定向页面从默认页面更改为自定义页面。

时间:2011-08-01 15:20:41

标签: asp.net http-status-code-404

我正在尝试为404错误设置自定义重定向页面。目前可能存在与主机服务器不同的错误页面,我的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 个答案:

答案 0 :(得分:1)

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设置为只是那个并查看它是否有效,对于.NET页面,customErrors标记比经典ASP更多,甚至在500:100中声明了经典httpErrors部分而不是CustomErrors

这取自已知的工作web.config,其中不相关的位被剥离。您可以在使用ExecuteURL时将其发送到ASP页面,这意味着您可以巧妙地处理404,例如重定向或提供搜索结果页。