我们正在将现有网站从IIS6迁移到IIS7,但在设置404错误页面时遇到了一些困难。我们的404-的errorPage是这样工作的:为IIS7网站配置带重定向的自定义ASP 404页面
- 自定义ASP页检查URL对“特殊”网址(例如http://example.com/limited-offers)的短名单。
- 如果URL是已知的,它将重定向到该页面的实际URL。
- 否则访问者将被重定向到一个404状态码的静态错误页面。
随着IIS6的这个作为广告,但与IIS7有些事情已经改变。 IIS7在遇到定义了错误页面的状态码时,将始终显示已配置的错误页面。如果我们使用404-statuscode的静态错误页面,这意味着IIS7将再次执行自定义ASP页面。这导致无限重定向。
我们发现,这种行为可以规避通过Web.Config中添加的设置
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
然而,增加这个我们自定义的ASP页面拒绝重定向后。与Fiddler检查后,似乎IIS7强制404状态码,覆盖我们的302重定向。
任何人都可以推荐另一种方法来解决我们的问题?
302page.asp重定向到另一页?如果是这样,它是否有404 HTTP状态码? – Arjen 2011-05-16 12:55:44
是的,对不起,只是编辑了302或404中的那一位,这取决于代码中的内容。 – 2011-05-16 12:58:52
这正是我们正在寻找,但无法让它工作。您在网站或应用程序池的IIS中是否有任何特殊设置?例如,您的应用程序池是使用经典还是集成管道模式? – Arjen 2011-05-16 13:15:47