通过https访问时 301重定向无效
问题描述
blog更换域名,旧域名old.com,新域名new.com,使用Let's Encrypt泛域名证书同时开启新旧域名https,然后Nginx配置301重定向,目的是把www.old.com old.com www.new.com都重定向到https://new.com。
配置文件如下:
server {
root /var/www/blog;
index index.html index.htm index.nginx-debian.html;
server_name www.new.com new.com www.old.com old.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/new.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/new.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
if ($host = old.com) {
return 301 https://new.com$request_uri;
}
if ($host ~ ^[^.]+\.old\.com$) {
return 301 https://new.com$request_uri;
}
if ($host = new.com) {
return 301 https://$host$request_uri;
}
if ($host ~ ^[^.]+\.new\.com$) {
return 301 https://new.com$request_uri;
}
listen 80 default_server;
listen [::]:80 default_server;
server_name www.new.com new.com www.old.com old.com;
return 404;
}
经上面配置,目前浏览器内通过http访问www.new.com www.old.com old.com都可以重定向到https://new.com,但如果通过https访问时,却不能重定向到https://new.com,而是直接打开所输入的域名,如浏览器输入https://www.old.com,则打开的网址也就是https://www.old.com,而不能重定向跳转到https://new.com。
如我想实现把https://www.old.com https://old.com https://www.new.com 也都重定向到https://new.com,该如何配置,求到牛支招!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
443端口配置中没有301配置,肯定不跳转了。