http如何强制301到https?

apache

1:将仅将http强制301到https,但不301带www或带www。
例如要求最终https://baddb.com 和https://www.baddb.com都能打开。

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

2:将http强制301到https的同时,最终要求再全部统一301到https://www.baddb.com,
包括https://abc.com也将被301

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

nginx

1: 将仅将http强制301到https,但不301带www或带www。
例如要求最终https://baddb.com 和https://www.baddb.com都能打开。

if ($server_port = 80 ) { 
return 301 https://$host$request_uri; 
}

 

2:将http强制301到https的同时,最终要求再全部统一301到https://www.baddb.com,
包括https://abc.com也将被301

if ($host !~* www\.(.)) { 
rewrite ^(.)$ http://www.$host$1 permanent;
}
if ($server_port = 80 ) {
return 301 https://$host$request_uri;
}

点赞