2

好的,我有一个奇怪的问题:我为客户域设置了一个 ssl 证书。在那个域上,我有一个 php 脚本,除了 print_r 输出 Php $_SERVER 超级全局之外什么都不做。在浏览器中我转到https://www.example.com,但 $_SERVER 数组中不仅没有 HTTPS 值,SCRIPT_URI 是http ://www.example.com,SERVER_PORT 是 80,SERVER_PROTOCOL 是 HTTP /1.1。

这里可能发生了什么?

谢谢

4

2 回答 2

1

因此 Network Solutions 将 https 查询重定向到防火墙或一些此类废话后面,因此无法在服务器端检测 ssl 连接。

我已经使用以下 javascript 处理了重定向。不是最干净的解决方案,但它似乎有效。

if(window.location.protocol == "http:")
    window.location.href = "https://" + window.location.host + window.location.pathname;
于 2012-07-20T21:45:31.723 回答
-1

是的,这是 PHP 的正确行为。$_SERVERhttps 的东西在超级全局数组中表示为 http 。我对这种奇怪的行为也有疑问。我希望这对你有帮助。

于 2012-07-20T12:37:19.767 回答