在web.config中,您可以添加此代码来处理404错误:
<customErrors mode="Off" defaultRedirect="ErrorPage.aspx">
<error statusCode="404" redirect="/Site-Map"/>
</customErrors>
这可以很好地通过此网址http://www.fundraising.com.au/thisisnotapage
看到但是,根据此网站http://gsitecrawler.com/tools/Server-Status.aspx,此不存在页面的响应代码为200,而不是404.
虽然此页面http://www.nuenergy.com.au/thisisnotapage确实在http://gsitecrawler.com/tools/Server-Status.aspx显示404并重定向到另一个页面。
如何在ASP.NET中实现后期? 我需要将响应设置为404并显示另一个页面。
答案 0 :(得分:1)
custom errors section employs the HttpHandler拦截你没有页面然后redirects the response的事实,以便服务器返回Site-Map
而不是可用资源,因此200状态是正确的好像请求首先是Site-Map
。
您最终希望提供两个版本的Site-Map
,一个是实际请求(200),另一个是自定义错误响应(404)。我将创建另一个版本的Site-Map
页面OnError-Site-Map
,扩展页面类以继承它的功能,然后overriding the http response code,以便它提供您想要的404状态,但仅限于该扩展版本。然后,将其放在web.config的自定义错误部分中。
答案 1 :(得分:1)
要让您的页面返回404状态,请将以下代码添加到Page_Load事件:
Protected Sub Page_Load1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Status = "404 Not Found"
End Sub