【发布时间】:2011-08-26 09:26:06
【问题描述】:
我们正在将现有网站从 IIS6 迁移到 IIS7,但在设置 404 错误页面时遇到了一些困难。我们的 404-errorpage 是这样工作的:
- 自定义 ASP 页面根据“特殊” URL 的简短列表(例如 http://example.com/limited-offers)检查 URL。
- 如果 URL 已知,它会重定向到该页面的实际 URL。
- 否则,访问者将被重定向到带有 404 状态码的静态错误页面。
使用 IIS6,这就像宣传的那样工作,但使用 IIS7,有些事情发生了变化。 IIS7 在遇到定义了错误页的状态码时,将始终显示配置的错误页。如果我们的静态错误页面带有 404-statuscode,这意味着 IIS7 将再次执行自定义 ASP 页面。这会导致无限重定向。
我们发现可以通过在 Web.Config 中添加设置来规避这种行为
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
但是,在添加这个之后,我们的自定义 ASP 页面拒绝重定向。在检查 Fiddler 后,似乎 IIS7 强制使用 404 状态码,覆盖了我们的 302 重定向。
谁能推荐另一种方法来解决我们的问题?
【问题讨论】:
标签: iis-7 error-handling asp-classic http-status-code-404 custom-error-pages