我在 Nginx 檔案中讀到,應該創建新的服務器塊,而不是使用 IF。
我嘗試制作另一個塊來監聽 443 ssl,只是為了設定 redvi.eu(非 www)然后相應地重定向它。由于重復而失敗。
在這里重定向 https 非 www 的正確方法是什么?
server {
listen 80 default_server;
server_name www.redvi.eu redvi.eu;
return 301 https://www.redvi.eu$request_uri;
}
server {
server_name www.redvi.eu;
root /home/deploy/redvi/current/public;
passenger_enabled on;
passenger_app_env production;
location /cable {
passenger_app_group_name redvi_websocket;
passenger_force_max_concurrent_requests_per_process 0;
}
# Allow uploads up to 100MB in size
client_max_body_size 100m;
location ~ ^/(assets|packs) {
expires max;
gzip_static on;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/www.redvi.eu/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/www.redvi.eu/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
uj5u.com熱心網友回復:
即使您不想使用“IF”,您也無能為力。
我多年來一直以這種方式使用它,并且效果很好。
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com www.example.com;
root /var/www/sites/example.com/public;
if ($host != 'www.example.com') {
return 301 https://www.example.com$request_uri;
}
# others....
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/490083.html
標籤:nginx
