PHP - 检测HTTPS协议的一些问题

时间:2017-06-13 07:57:46

标签: php jquery

我在加载我的模板时出现问题,我尝试在XAMPP上测试我的模板,同样的问题再次发生

  

内部服务器错误

     

服务器遇到内部错误或配置错误   无法完成您的请求。

     

请通过admin@main-hosting.eu与服务器管理员联系   告知他们此错误发生的时间以及您的行为   在此错误之前执行。

     

有关此错误的详细信息可能在服务器错误中可用   log.`

一开始只显示加载页面没有显示任何内容然后再出现错误...请帮助但是在XAMPP上它只是一直加载我的页面 但是经过一段时间我试图解决问题,发现它并试图解决它,但我需要一些帮助,请修复导致它的代码

$Domain = $_SERVER['HTTP_HOST'];
$Path = $_SERVER['PHP_SELF'];   
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) 
{
    echo '<script type="text/javascript">window.location.assign("https://' .$Domain.$Path. '");</script>';
} 
else 
{
    echo '<script type="text/javascript">window.location.assign("http://' .$Domain.$Path. '");</script>';
}

请一些帮助???

2 个答案:

答案 0 :(得分:2)

原因是因为每次加载页面时脚本都在运行并且无休止地刷新站点。您需要知道页面是否已被重定向。 例如:

<?php
    if (!isset($_GET['r'])){
        $Domain = $_SERVER['HTTP_HOST'];
        $Path = $_SERVER['PHP_SELF'];   
        if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) 
        {
            echo '<script type="text/javascript">window.location.assign("https://' .$Domain.$Path. '?r=https");</script>';
        } 
        else 
        {
            echo '<script type="text/javascript">window.location.assign("http://' .$Domain.$Path. '?r=http");</script>';
        }
    }
 ?>

我不明白这一点......我建议你改用Location。示例:

header('Location: http://www.example.com/');

答案 1 :(得分:0)

这是一种非常糟糕的重新加载页面的方法。 下面的代码无限重新加载页面,直到修改网址为止... 要理解这一点,请运行以下代码......

$ Domain = $ _SERVER ['HTTP_HOST'];    $ Path = $ _SERVER ['PHP_SELF'];

if(!empty($ _ SERVER ['HTTPS'])&amp;&amp;('on'== $ _SERVER ['HTTPS'])){

    echo 'HTTPS AVAILABLE';
    echo '<script type=   "text/javascript">window.location.assign("https://' . $Domain .$Path. '");</script>';
} else { 



echo 'HTTPS NOT AVAILABLE  ';   
echo '<script type="text/javascript">window.location.assign("http://' .   $Domain .$Path.' ");</script>';

}

当页面继续加载时,将代码修改为

$Domain = $_SERVER['HTTP_HOST'];
$Path = $_SERVER['PHP_SELF'];

if(!empty($ _ SERVER ['HTTPS'])&amp;&amp;('on'== $ _SERVER ['HTTPS'])){

echo 'HTTPS AVAILABLE';
echo '<script type="text/javascript">window.location.assign("https://' .   $Domain . '");</script>';

}其他{

echo 'HTTPS NOT AVAILABLE  ';   
echo '<script type="text/javascript">window.location.assign("http://' .  $Domain .' ");</script>';

}

保存后,会将您重定向到https://localhosthttp://localhost 如果在本地机器上运行。

如果网址相同,window.location.assign()会无限重新加载页面。