Đây là cấu hình hiện tại của tôi:
người phục vụ {
nếu ($host = www.mywebsite.com) {
trả lại 301 https://mywebsite.com$request_uri;
} # được quản lý bởi Certbot
nếu ($host = mywebsite.com) {
trả lại 301 https://mywebsite.com$request_uri;
} # được quản lý bởi Certbot
nghe 80;
server_name mywebsite.com www.mywebsite.com;
trả lại 404; # được quản lý bởi Certbot
}
người phục vụ {
server_name mywebsite.com;
gốc /var/www/html/mywebsite.com/public;
địa điểm / {
try_files $uri $uri/index.html @sinatra;
}
địa điểm @sinatra {
proxy_pass http://127.0.0.1:4567;
}
nghe [::]:443 ssl http2 ipv6only=on;
nghe 443 ssl http2; # được quản lý bởi Certbot
ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}
Điều tôi muốn là có mọi thứ... phiên bản www hoặc phiên bản http của bất kỳ URL nào được chuyển hướng đến url HTTPS không phải www.
Ngay bây giờ, mọi thứ đều hoạt động với một số nhược điểm:
https://mywebsite.com
hoạt động tốt
http://mywebsite.com
chuyển hướng đến https://mywebsite.com
(hoàn hảo quá)
https://www.mywebsite.com
chuyển hướng đến https://mywebsite.com//
(dấu gạch chéo kép!)
http://www.mywebsite.com
chuyển hướng đến https://mywebsite.com//
(dấu gạch chéo kép, một lần nữa!)
Làm thế nào để tôi đi sửa lỗi này?