Ich habe mir viele angesehenSE-Threadsund verschiedeneGoogle-Suchanfragenund kann nicht herausfinden, warum ich nicht auf meinen Nginx-Server umleiten www.mysite.com
kann mysite.com
.
Der 1. Serverblock führt die http://mysite.info
->- https://mysite.info
Umleitung wie erwartet durch. Ich bin mir also nicht sicher, warum der 2. Serverblock nicht dasselbe für das www.mysite.info
-> tut mysite.info
.
Hier ist der relevante Teil meiner nginx.conf-Datei:
server {
server_name mysite.info;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
server_name www.mysite.info;
rewrite ^ https://mysite.info$request_uri? permanent;
}
server {
listen 443;
ssl on;
server_name mysite.info;
# other directives, handling PHP, etc.
}
Irgendwelche Ideen, was schief läuft?
Antwort1
Sie leiten zu weiter $server_name
, das sich www.mysite.info
im zweiten server
Block befindet. Dadurch wird also lediglich zu HTTPS weitergeleitet, der Host wird nicht geändert.
rewrite ^ https://mysite.info$request_uri? permanent;
Dadurch werden sowohl die Änderung des Hosts als auch die Änderung zu HTTPS behandelt.
Wenn Sie möchten, dass die Umleitung protokollunabhängig ist, wäre folgender Ansatz besser:
rewrite ^ $scheme://mysite.info$request_uri? permanent;
Auf neueren Versionen von Nginx funktioniert dies auch (und sollte etwas schneller sein):
return 301 $scheme://mysite.info$request_uri;