我正在尝试为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>
答案 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,例如重定向或提供搜索结果页。