gpt4 book ai didi

IIS 404 自定义错误 : URL return response code 200 instead

转载 作者:行者123 更新时间:2023-12-04 15:05:07 25 4
gpt4 key购买 nike

我正在尝试使用 IIS6 返回自定义 404 页面。 (我有一个网站,主要是使用可移动类型构建的 .shtml 页面)。我已经尝试了 2 种方式:

1) 将 IIS 中的 404 错误处理程序设置为路径为\404.html 的"file"类型。这有效,但这也意味着我无法导入我网站的页眉和页脚(因此是 .shtml) 尝试将 404 错误处理程序指向 404.shtml 会导致默认的 404 页面...我猜 IIS 可以'不处理 404 中的 shtml 文件。

2)将类型设置为“URL”。这很好用,除了响应代码不再是 404!它的一个200。

如何让 IIS 使用 404.shtml 文件的内容响应 404 响应代码?

最佳答案

鉴于它是 IIS,添加

<% Response.Status = "404 Not Found" %>

到 404.shtml 的顶部应该将响应代码更改为 404。

我不在 Windows 机器上,所以我目前无法对其进行测试以进行验证。

更新:

我终于能够在 IIS 6 上运行一些测试。正如您在我帖子的评论中提到的,.shtml 文件不允许运行脚本命令。因此,至少有两种方法可以解决此问题:
  • 不要将自定义 404 处理页面命名为 404.shtml,而是将其命名为 404.asp。用户永远不应该看到页面的实际名称,因此它不会导致任何问题。请注意,IIS 的 Web Service Extensions 文件夹中的“Active Server Pages”必须设置为“Allowed”。
  • 修改 .shtml 的页面扩展映射以使用 asp.dll 而不是 ssinc.dll。您可以通过选择网站并查看属性 -> 主目录选项卡 -> 配置 -> 映射选项卡,从 IIS 执行此操作。请注意,这远非理想的解决方案,因为现在所有 .shtml 文件都将由 asp.dll 处理。这可能会导致您的页面呈现更慢(假设 asp.dll 处理文件比 ssinc.dll 更慢,因为更复杂)并违反 principle of least privilege .

  • 如果这两个选项都不适合您的情况,那么它仍然是可能的,但解决方案对我来说并不是很明显。

    关于IIS 404 自定义错误 : URL return response code 200 instead,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2345038/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com