Wieder ein Nginx-Redirect-Problem. Ich brauche meine Website nur über https und immer mit Subdomain www (oder app oder api) zugänglich. Gibt es eine Möglichkeit die folgende Konfiguration zu akzeptieren https://example.com (ohne www)? Weil das ist, was ich gerade sehe, ohne in der Lage zu sein, zu erklären, warum ... Ich füge nur hinzu, dass es keinen anderen Serverabschnitt in der nginx-Konfiguration gibt.Nginx Weiterleitung an www
server {
listen 80;
server_name ~^(?<subdomain>www|app|api)\.example\.com$;
index index.html index.htm;
return 301 https://$subdomain.example.com$request_uri;
}
server {
listen 443 ssl;
server_name ~^(?<subdomain>www|app|api)\.example\.com$;
root /var/www/html/pathToMyWebsite;
index index.php;
}
Edit: Hier ist, was ich Dank am Ende mit @ivan:
# Redirects http://example.com & https://example.com to https://www.example.com
server {
listen 80;
listen 443 ssl; # Here is the trick - listen both 80 & 443.
# other ssl related stuff but without "ssl on;" line.
server_name example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 80;
server_name ~^(?<subdomain>www|app|api)\.example\.com$;
index index.html index.htm;
return 301 https://$subdomain.example.com$request_uri;
}
server {
listen 443 default_server ssl;
server_name ~^(?<subdomain>www|app|api)\.example\.com$;
root /var/www/html/pathToMyWebsite;
index index.php;
}
Mitteilung der "default_server" Ich habe auf listen 443 default_server ssl;
ich am Ende eine Mischung aus Ihrer Lösung und Mine verwenden. Ich musste 'liste default_server 443;' setzen, weil ich diesen Fehler hatte "nein" ssl_certificate "ist definiert im Server auf SSL-Port während SSL-Handshake hören" – Axi