这个问题与此有关,希望能更好地表达.
我想从ASP.NET MVC提供自定义404页面.我有路由处理程序和所有基础结构设置,以确保单个操作处理不存在的路由:
public ActionResult Handle404()
{
Response.StatusCode = 404;
return View("NotFound");
}
Run Code Online (Sandbox Code Playgroud)
问题:当我在返回内容之前将Response.StatusCode设置为404时,IIS会回送自己的内容(某些预定义消息).
在VS开发Web服务器上,这可以按预期工作 - 当我的内容(NotFound视图)被提供时,HTTP响应的状态代码是404 .
我相信当IIS处理管道看到应用程序返回404时,它只是用自己的响应替换整个响应.
IIS中的哪些设置会影响此行为?
我无法访问IIS安装,因此我无法对此进行调查 - 但是,如果我知道确切需要更改的内容,我可以要求托管服务提供商为我调整配置.
我在这里和超级用户之间发帖.如果您觉得这不属于此,请原谅.
我正在观察此处描述的行为- Googlebot正在我的网站上请求随机网址,例如aecgeqfx.html或sutwjemebk.html.我确信我没有从我网站上的任何地方链接这些网址.
我怀疑这可能是谷歌探讨我们如何处理不存在的内容 - 引用链接问题的答案:
[google is requesting random urls to] see if your site correctly
handles non-existent files (by returning a 404 response header)
Run Code Online (Sandbox Code Playgroud)
我们有一个针对不存在的内容的自定义页面 - 一个风格的页面,上面写着"内容未找到,如果您认为自己错误,请与我们联系",并提供一些内部链接,自然地提供了一个200 OK.URL直接提供(不重定向到单个URL).
我担心这可能会歧视谷歌的网站 - 他们可能不会将用户友好页面解释为,404 - not found并且可能认为我们正试图伪造某些内容并提供重复内容.
我应该如何确保谷歌不会认为该网站是虚假的,同时向用户提供用户友好的消息,以防他们偶然点击死链接?