【发布时间】:2011-05-06 11:57:04
【问题描述】:
我们无法解决的非常简单的问题。以下代码未正确重定向:
$location = str_replace("http","https",$this->page->current_url);
header( "Location: ".$location );
我收到 400 错误:“您的浏览器发送了此服务器无法理解的请求。 原因:您对启用 SSL 的服务器端口使用纯 HTTP。请改为使用 HTTPS 方案访问此 URL。"
我如何在 PHP 中从通过 HTTPS 提供的页面重定向到通过 HTTP 提供的页面以用于安全登录等场景,然后重定向到不安全的应用页面?
【问题讨论】:
-
先基本调试。替换后
$location包含什么? -
您使用的是哪个网络服务器?
-
在这个话题上没有太多经验,也许在这里添加端口会有所帮助。意义;
https://host/path-->http://host:80/path。鉴于您提供的信息,听起来浏览器并未切换到 http 端口,而是继续与 https 端口通信。 -
@Harism 这就是我的想法,但是是的,输出 $location 字符串以查看发生了什么
-
Pekka - Duh - 我不知道为什么我没有查看 $location。它包含无效的 http//localhost:443/[...]。我只需删除 :443 就可以了。
标签: php