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

  虽然我们看到各种新闻或者所谓的权威建议,要求网站都启用HTTPS加密格式,但是很多大型网站也并没有启动,HTTPS加密形式固然是有优点,但是也并不能强制所有网站都需要启用。比如简单的个人网站,其实也没有必要使用,反而会是的一些成本以及技术难点增加。

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

第一、Apache 强制HTTPS形式

1、添加文件位置

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

2、强制WWW跳转

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

3、强制非WWW跳转

RewriteEngine On
RewriteCond %{HTTP_HOST} !^wsw.asia$ [NC]
RewriteRule ^(.*)$ https://wsw.asia/$1 [L,R=301]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://wsw.asia/$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.wsw.asia) { return 301 $scheme://www.wsw.asia$request_uri; }

3、强制非WWW跳转

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

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

THE END
网站地图