Total Pageviews

Friday, 8 September 2017

Apache/Nginx服务器环境强制HTTPS跳转的设置方法

在公司的一些客户项目中,外贸网站、企业网站,他们会考虑加上SSL实现HTTPS绿标。当然,这些也是公司业务员争取过来的业绩增加的结果,不懂他们在客户面前如何忽悠加上多么的帅气。目前SSL证书成本也相当低,年付10美元左右的,甚至免费的都可以找到。

一般的网站服务器环境中,会采用Apache或者Nginx环境驱动,强制HTTPS加密网址需要用到几个脚本就可以实现。当然前提是我们已经在服务器中部署SSL证书.
第一、Apache 强制HTTPS

1、添加文件位置

一般是在网站根目录伪静态文件,如果没有我们需要创建一个.htaccess文件中。

2、强制WWW跳转

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.mydomain.com$ [NC]
    RewriteRule ^(.*)$ https://www.mydomain.com/$1 [L,R=301]
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://www.mydomain.com/$1 [L,R=301]

3、强制非WWW跳转

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^mydomain.com$ [NC]
    RewriteRule ^(.*)$ https://mydomain.com/$1 [L,R=301]
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://mydomain.com/$1 [L,R=301]

根据需要是用WWW,还是非WWW,添加到根目录.htaccess文件中,立即生效。

第二、Nginx 强制HTTPS跳转

1、设置文件位置

一般在当前服务器环境中的对应网站域名的.conf文件,添加到配置环境中。

2、强制WWW跳转

    if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
    if ($host != www.mydomain.com) { return 301 $scheme://www.mydomain.com$request_uri; }

3、强制非WWW跳转

    if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
    if ($host != mydomain.com) { return 301 $scheme://mydomain.com$request_uri; }

设置之后,需要重启Nginx之后才可以生效。

No comments:

Post a Comment