我写了一个脚本,强制通过http或https访问网站的某些部分。我们希望用户被重定向到正常的http页面,以防偶然降落到https版本,反之亦然。到目前为止,这么好,但我有两个问题给你们。强制http/https:如何检测https以及重定向时要发送哪个状态头?
什么是切换协议时发送的正确状态头?我目前在这两种情况下使用这种重定向之前:
header('HTTP/1.1 301 Moved Permanently');
是什么,如果我们正在使用https来检测的首选方法是什么?
// if ($_SERVER['SERVER_PORT'] == 443) /* EDIT: OK, not this? */ if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) === 'on'))
还有别的吗?都?
回帖评论:
我们使用Apache,但如果有一个通用的解决方案,将极大。
我们不想使用
.htaccess
,因为https所需的页面由我们正在使用的CMS“标记”,并且这是其中的一部分。我们不想将URL“硬编码”到一个文件中。
IIRC,'$ _SERVER ['HTTPS']'仅在某些服务器(即Apache)上存在。 – ceejayoz 2012-01-17 22:11:40
检查端口不可靠。可以在443以外的端口上运行SSL,也可以在不使用HTTPS的情况下连接到端口443 *(尽管服务器通常会在发生错误时终止该请求)。 – animuson 2012-01-17 22:12:55
为什么我不在这里闻到htaccess? – 2012-01-17 22:20:24