为什么此PHP代码段将登录推送到HTTPS会导致重定向循环?

柯西·昆

我想将已登录的用户推送到HTTPS,但让未登录的用户保留在HTTP上(已经设置了https)。我从另一个SO帖子(很抱歉,现在找不到要引用的帖子)中获取了此代码段,并将其嵌套在if($ loggedin)条件下,这样,未登录的用户就不必使用https。我所有的路径都是相对的。

if($loggedin)
    {
    if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
        if(!headers_sent()) {
            header("Status: 301 Moved Permanently");
            header(sprintf(
                'Location: https://%s%s',
                $_SERVER['HTTP_HOST'],
                $_SERVER['REQUEST_URI']
            ));
            exit();
        }
    }
}

我尝试在函数中放入一些JavaScript警报,但是在加载页面时,我从未看到警报,而是直接转到重定向错误消息。我不知道它是否相关,但是我正在使用AWS上的apache服务器进行弹性负载平衡来运行它。

关于我在这里可能做错了什么的任何想法?还是由于我的JavaScript警报未显示而进行故障排除的提示?谢谢你。

编辑:我找到了我最初从以下代码中获取的SO帖子:使用.htaccess和mod_rewrite强制SSL / https

克里斯

您的问题中没有足够的信息,但是您提到其中之一是在使用负载平衡器。

如果要终止负载平衡器上的SSL,但在ELB和实例之间使用HTTP,则此检查将始终失败:

if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {

相反,您将需要检查X-Forwarded-Proto原始请求是否为HTTPS。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此PHP代码段将登录推送到HTTPS会导致重定向循环?

来自分类Dev

为什么此htaccess代码会导致重定向循环?

来自分类Dev

为什么不重定向会导致无限循环?

来自分类Dev

为什么facebook javascript登录代码会导致无限循环?

来自分类Dev

为什么此功能会导致段错误?

来自分类Dev

为什么此更改会导致段故障?

来自分类Dev

为什么此C代码段不会导致分段错误?

来自分类Dev

为什么此汇编代码会引发段错误?

来自分类Dev

为什么此汇编代码会引发段错误?

来自分类Dev

为什么此.htaccess代码执行恒定重定向?

来自分类Dev

为什么此.htaccess重写代码未正确重定向?

来自分类Dev

PHP登录重定向循环

来自分类Dev

为什么此循环会导致堆栈溢出?

来自分类Dev

为什么此代码会导致分段错误

来自分类Dev

为什么此代码会导致“需要对象”错误?

来自分类Dev

为什么此代码会导致与MSVC的无效对齐?

来自分类Dev

为什么此代码会导致分段错误

来自分类Dev

为什么此代码会导致“需要对象”错误?

来自分类Dev

为什么此代码块会导致空白?

来自分类Dev

为什么此代码会导致内存耗尽?

来自分类Dev

为什么此代码会导致访问错误?

来自分类Dev

将/index.php重定向到/导致无限循环

来自分类Dev

为什么此javascript代码段将显示414243?

来自分类Dev

为什么这段代码会导致无限循环

来自分类Dev

为什么我的代码会导致无限循环?

来自分类Dev

为什么这段代码会导致无限循环

来自分类Dev

为什么此汇编代码会无限循环?

来自分类Dev

为什么此代码会陷入无限循环?

来自分类Dev

PHP将代码http重定向到https

Related 相关文章

热门标签

归档