IIS 6 默认 404 页面使用相对“文件”而不是“URL”

IIS 6 默认 404 页面使用相对“文件”而不是“URL”

我有一台 IIS6 服务器,当我设置自定义 404 页面(设置为 URL /404.htm)时返回 200。

阅读它后,似乎如果我改用“文件”选项,它将返回实际的 404 状态代码。

但是,我希望能够为我的服务器上的所有网站(几百个)设置此功能,所以我希望能够使用相对路径。

使用 IIS 管理器时,它只允许我选择绝对路径。

答案1

因为它是 IIS,你能简单地将一个文件放在每个网站的根目录中吗?(使用批处理文件可能很容易)。

该文件将是一个web.config文件(用于 ASP.NET)

web.config 中的代码如下所示。

<?xml version="1.0"?>
<configuration>
    <system.web>
        <customErrors mode="On" redirectMode="ResponseRewrite">
            <error statusCode="404" redirect="http://localhost/404.htm" />
        </customErrors>
    </system.web>
</configuration>

然后在 IIS 中创建另一个网站来托管你的404.htm文件,并在localhost


或者,您可以创建一个404.aspx文件并将其作为 404 错误页面(而不是404.htm)。此文件看起来类似于以下内容。

<%@ Page language="c#" %>
<html>
<head>
   <script language="CS" runat="server">
      void Page_Load(object sender, System.EventArgs e) 
      {
          // here were actually telling the browser that the page is 404 and not 200
          Response.Status = "404 Not Found";
          Response.StatusCode = 404;
      } 
   </script>
   <title>404: Whoops, we lost your file.</title>
</head>
<body>
    <h1>404</h1>
    <div>Oops, the resource you are looking for is unavailable</div>
</body>
</html>

相关内容