Nginx rewrite规则实现http跳转到https及301永久重定向
环境准备:
[root@ubuntu1804 ~]
HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Sat, 20 Aug 2022 07:26:10 GMT
Content-Type: text/html
Content-Length: 15
Last-Modified: Sat, 20 Aug 2022 04:15:33 GMT
Connection: keep-alive
ETag: "63005fe5-f"
Accept-Ranges: bytes
[root@ubuntu1804 ~]
HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Sat, 20 Aug 2022 07:26:19 GMT
Content-Type: text/html
Content-Length: 11
Last-Modified: Sat, 20 Aug 2022 03:36:17 GMT
Connection: keep-alive
ETag: "630056b1-b"
Accept-Ranges: bytes
1. 实现http跳转到https及301永久重定向
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
[root@centos7 ~]
[root@centos7 conf.d]
mobile.conf pc.conf ssl
[root@centos7 conf.d]
server{
listen 80;
listen 443 ssl;
ssl_certificate /apps/nginx/conf/conf.d/ssl/www.linux2022.com.crt;
ssl_certificate_key /apps/nginx/conf/conf.d/ssl/www.linux2022.com.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
server_name www.linux2022.com;
location / {
root /data/nginx/html/pc;
if ( $scheme = http ) {
rewrite ^/(.*)$ https://www.linux2022.com/$1 permanent;
}
}
}
[root@centos7 conf.d]
server{
listen 80;
listen 443 ssl;
ssl_certificate /apps/nginx/conf/conf.d/ssl/linux2022.com.pem;
ssl_certificate_key /apps/nginx/conf/conf.d/ssl/linux2022.com.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
server_name linux2022.com;
location / {
root /data/nginx/html/mobile;
if ( $scheme = http ) {
rewrite ^/(.*)$ https://linux2022.com/$1 permanent;
}
}
}
[root@centos7 conf.d]
[root@centos7 conf.d]
[root@ubuntu1804 ~]
10.0.0.27 www.linux2022.com linux2022.com
[root@ubuntu1804 ~]
HTTP/1.1 301 Moved Permanently
Server: nginx/1.20.1
Date: Sat, 20 Aug 2022 09:09:39 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
Location: https://www.linux2022.com/
Strict-Transport-Security: max-age=31536000; includeSubDomains
[root@ubuntu1804 ~]
HTTP/1.1 301 Moved Permanently
Server: nginx/1.20.1
Date: Sat, 20 Aug 2022 09:22:13 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
Location: https://linux2022.com/
Strict-Transport-Security: max-age=31536000; includeSubDomains