Configurarea redirecționărilor www â non-www și HTTP â HTTPS în același timp, m-am confruntat cu o problemă de duplicare pe care nu am reușit să o depășesc.
Pe domeniul meu... lasă să fie exemplu.com
âAm un site web cu nume principal alt.exemplu.com
. Vreau ca cererile exemplu.com
, www.example.com
, și www.other.example.com
pentru a fi redirecționat către alt.exemplu.com
și toate solicitările HTTP să fie redirecționate către HTTPS în același timp; De asemenea, vreau să accept HTTP/2 și IPv6.
Nu am nicio problemă în a face acest lucru să funcționeze, dar nu reușesc să scap de duplicarea unei părți substanțiale a fișierului de configurare (și anume setările certificatului HTTPS). Toate încercările de a reduce duplicarea fac ca una sau mai multe sau toate redirecționările să nu mai funcționeze (uneori împreună cu HTTP/2).
Vă rugăm să aruncați o privire la configurație și să sugerați cum să o curățați:
Server {
asculta 80;
asculta [::]:80;
nume_server www.altul.example.com www.example.com another.example.com example.com;
returnează 301 https://another.example.com$request_uri;
}
Server {
asculta 443;
asculta [::]:443;
nume_server www.other.example.com www.example.com example.com;
returnează 301 https://another.example.com$request_uri;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
includ /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
Server {
nume_server another.example.com;
root /usr/share/nginx/another.example.com;
index index.html;
Locație / {
try_files $uri $uri/ =404;
}
asculta [::]:443 ssl http2;
asculta 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
includ /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}