我有一个用户需要访问的外部商业站点, http://www.foo.com ,这不幸导致我们的代理服务器出现问题,用户断开链接,样式表无法加载等。
通过实验,我们发现使用https://www.foo.com是完美的,但是它们的一些链接是绝对的,并且指向http://www.foo.com ,当它们点击时会导致代理问题他们。 很明显,如果网站会照顾到这一点,那就太好了,但不太可能。
有没有办法,与客户端使用IE6,强制redirect到https://www.foo.com/whatever当用户点击链接到http://www.foo.com/whatever ? 我已经看到它可以用Firefox + Noscript完成。
关于唯一的办法,我可以想到用IE 6来实现这个目标,就是在每个客户端上创build一个指向redirect页面的主机文件条目…虽然这有点破绽。 似乎最好的解决办法是像目前所有人提到的那样修复代理。
在这个网站上增加一个例外,真的应该在代理服务器上做出改变。 由于您无法访问远程站点,并且您使用的是https,因此我认为redirect必须位于您的用户浏览器级别。
我猜你不能代理https,因为它是在客户端encryption到代理服务器之前encryption的,并且在远程主机到达代理服务器之前由它encryption。 因此,代理服务器将无法查看http数据并对其进行caching。 所以,我认为使用https基本上会导致您绕过代理服务器。 任何人有更多的代理经validation实这一点?
不知道你使用的是什么代理服务器,你不能只是做redirect吗? 如果你使用鱿鱼, 蠕动 (除其他外)看起来就像是伎俩。
如果您使用apache作为web服务器,您可以在.htaccess中使用mod_rewrite指令将所有传入的http请求重写为https。
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} .*MSIE.* [AND] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
这将重写所有来自MSIE浏览器的使用https的请求。
既然你没有明确地注意到在这里使用的networking服务器,我只能猜测。 不幸的是,我不太了解IIS,可以做同样的事情。
希望这可以帮助!