使用PHP确保HTTPS中存在HTTPS和WWW

时间:2012-11-14 14:19:21

标签: php url

我正在试图弄清楚如何做到这一点。我想确保当有人访问mysite.com时,他们正在浏览https://www.mysite.com

所以对于以下任何一个:

http://mysite.com
http://www.mysite.com
https://mysite.com

应改为:

https://www.mysite.com

它还需要适用于所有子目录和文件。

所以这些:

http://mysite.com/about
http://www.mysite.com/page.php

应改为:

https://www.mysite.com/about
https://www.mysite.com/page.php

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

只需确保页面开头包含以下代码:

if ( empty($_SERVER['HTTPS']) ) { //if not using https
    $server = $_SERVER['SERVER_NAME'];
    if ($server == 'mysite.com') {
        $server = 'www.' . $server;
    }
    header('Location: https://' . $server . $_SERVER['REQUEST_URI']);
}

答案 1 :(得分:0)

如果您使用mod_rewrite运行apache,则可以使用以下内容:

RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

其他服务器应该有类似的选项。