根据端口使用标头语句重定向 SSL 页面

根据端口使用标头语句重定向 SSL 页面

我在一个电子商务网站的 header.php 文件中发现了这一点。在 .htaccess 文件中完成这个操作是否更好?

另外,任何被困在标题语句中的帖子参数会发生什么情况?

// flip between secure and non-secure pages
$uri = $_SERVER['REQUEST_URI'];

// move to secure SSL pages if required
if (substr($uri,1,12) == "registration") 
{
    if($_SERVER['SERVER_PORT'] != 443) {   
       header("HTTP/1.1 301 Moved Permanently");
       header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
       exit();
    }
}
// otherwise us regular non-SSL pages
else
{
     if($_SERVER['SERVER_PORT'] == 443) {   
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
        exit();   
    }
}   

答案1

是的,这可以在 .htaccess 文件中完成,例如使用 mod_rewrite。但何必呢?应用程序编写者可能不想假设特定的 Web 服务器或增加服务器配置的复杂性,因此在应用程序级别处理它。

我相信 POST 参数会在翻译中丢失,但必须假设这是应用程序编写者考虑到的事情。

相关内容