Đâ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;
}
nếu ($host = mywebsite.com) {
trả lại 301 https://mywebsite.com$request_uri;
}
nghe 80;
server_name mywebsite.com www.mywebsite.com;
trả lại 404;
}
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;
ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem;
bao gồm /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
Đ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?