重定向到 https

重定向到 https

我有一个外部商业网站,我的用户需要访问它,http://www.foo.com,不幸的是,这会导致我们的代理服务器出现问题,用户会得到断开的链接,样式表无法加载等。

通过实验,我们发现使用https://www.foo.com运行完美,但其中一些链接是绝对的,并指向http://www.foo.com,这样当他们点击这些链接时就会出现代理问题。显然,如果网站能解决这个问题就好了,但这不太可能在短期内实现。

有没有办法,在使用 IE6 的客户端上强制重定向到https://www.foo.com/whatever当用户点击链接时http://www.foo.com/whatever? 我已经看到可以使用 Firefox+Noscript 来实现。

答案1

我能想到的用 IE 6 实现此目的的唯一方法是在每个客户端上创建一个指向重定向页面的主机文件条目...但这有点儿像黑客行为。似乎最好的解决方案是修复代理,就像到目前为止每个人都提到的那样。

答案2

确实应该在代理服务器上进行更改,为此站点添加例外。由于您无权访问远程站点,并且您正在使用 https,我认为重定向必须在您的用户浏览器级别进行。

我猜您无法使用代理 https,因为在到达代理服务器之前,客户端会对其进行加密,在到达您的代理服务器之前,远程主机也会对其进行加密。因此,代理服务器无法查看 http 数据并缓存其中的任何数据。因此,我认为使用 https 基本上会让您绕过代理服务器。有更多代理经验的人可以证实这一点吗?

答案3

如果不知道你使用的是什么代理服务器,那么你不能直接在代理服务器中进行重定向吗?如果你使用的是 squid,蠕动(以及其他人)看起来它能起到作用。

答案4

如果您使用 apache 作为网络服务器,则可以使用 .htaccess 中的 mod_rewrite 指令将所有传入的 http 请求重写为 https。

        RewriteEngine On
        RewriteCond %{HTTP_USER_AGENT} .*MSIE.* [AND]
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

这将重写来自 MSIE 浏览器的所有请求以使用 https。

由于您没有明确指出此处使用的 Web 服务器,因此我只能猜测。不幸的是,我对 IIS 了解不够,无法做同样的事情。

希望这可以帮助!

相关内容