8

对于我的网站,我配置了一些自定义错误页面。如果我生成 404,则重定向工作正常。当达到 400 时,会显示“错误请求”文本而不是配置的 URl。

作为测试,我将 URL 从 404 复制到 400。没有变化。然后我将重定向更改为文件。不用找了。

有任何想法吗?

4

5 回答 5

7

我遇到了同样的问题,并在 msdn http://msdn.microsoft.com/en-us/library/ms690497.aspx上找到了这个

我不确定这是否适用于 IIS6,但它肯定适用于 IIS7。您需要配置httpErrors,而不是自定义错误

<system.webServer>
      <httpErrors errorMode="Custom">
            <error statusCode="400" subStatusCode="-1" path="_path" responseMode="Redirect" />
      </httpErrors>
</system.webServer>
于 2010-03-24T08:06:41.300 回答
6

也许就是你的答案:这个微软网站说在 IIS6 中重新配置自定义错误

以下错误不可自定义:400、403.9、411、414、500、500.11、500.14、500.15、501、503 和 505。

于 2008-11-06T13:54:38.710 回答
3

尝试

Response.TrySkipIisCustomErrors = true;

或者

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

原帖

于 2012-10-02T08:55:07.453 回答
0

检查该部分的 web.config 文件中的customErrors内容。它有一个defaultRedirect属性,以及一个error带有redirect属性的子标签。这些可能与您在 IIS 中的其他配置设置冲突。

于 2008-11-06T13:31:56.247 回答
0

在 2020 年,它将像这样工作web.config

<system.webServer>
    <httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="400" subStatusCode="-1" />
      ...
      <error statusCode="400" prefixLanguageFilePath="YOUR_PATH" path="YOUR_HTML_FILE" responseMode="File" />
    ...

状态码

必需的整数属性。

指定要为其创建自定义错误消息的 HTTP 状态代码的编号。可接受的值是从 400 到 999。

https://docs.microsoft.com/en-us/previous-versions/iis/settings-schema/ms689487(v=vs.90)

请注意,像https://stackoverflow.com/%这样的错误 URL仍然无法自定义,并且会收到来自 IIS 内核的简单错误请求消息(错误代码 400)。

更多关于这里 https://serverfault.com/questions/257680/properly-handle-iis-request-with-percent-sign-in-url

于 2020-11-19T16:01:18.637 回答