我有一台 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>