403.4 不会在 IE7 中重定向

403.4 不会在 IE7 中重定向

我有一个需要 SSL 的安全文件夹。我已在 IIS(6) 中将其设置为需要 SSL。我们不希望访问者看到“必须是安全连接”错误,因此我修改了 403.4 错误页面以包含以下内容:

<script type="text/javascript">
function redirectToHttps()    {

    var httpURL = window.location.hostname+window.location.pathname;

    var httpsURL = "https://" + httpURL ;

    window.location = httpsURL ;

}
redirectToHttps();
</script>

此解决方案适用于除 IE7 之外的所有浏览器。在任何其他浏览器上,如果您输入http://www.mysite.com/securedfolder它会自动将你重定向到https://www.mysite.com/securedfolder没有任何消息或任何内容(预期操作)。但仅在 Internet Explorer 7 中,它会显示一个页面,显示

The website declined to show this webpage
Most Likely Causes:
This website requires you to log in

这当然是我们不希望发生的。我已经确认启用了 javascript,并且安全设置无效,即使我将其设置为最低级别,也会收到相同的错误。

我想知道,以前还有人见过这个吗?

答案1

我猜 IE 的“友好错误消息”功能正在用它认为更容易让人理解的页面替换你的错误页面。根据这篇知识库文章,当服务器响应足够大时,不会使用“友好的错误消息”,并建议用空格填充自定义错误页面,直到它足够大。

答案2

我以前从未遇到过这种情况,但我想知道你为什么使用 javascript 来做到这一点?曾经尝试过

<meta http-equiv="REFRESH" content="0;url=http://www.the-domain-you-want-to-redirect-to.com"> ?

由于我使用 ASP.NET,因此处理这个问题的方法很简单。您可以创建一个抽象页面类或 HttpModule(整个 Web 应用程序),检查是否(!Request.IsSecure)... 使用 301 重定向到安全页面。

在服务器端执行此操作的好处是它无需 JavaScript 即可工作。我确信您可以使用任何语言(Java、PHP、ruby 甚至 c++,如果您是老派的话)执行相同的操作。

相关内容