Probleme beim Ersetzen von Nicht-WWW-Domänen in Nginx

Probleme beim Ersetzen von Nicht-WWW-Domänen in Nginx

Ich verwende CentOS 7 mit Nginx. Ich möchte alle Nicht-www-Domänen in "www"-Domänen umwandeln, z. B. wenn jemand "abc.example.com" eingibt, möchte ich, dass er zu "www.example.com" weitergeleitet wird. Ich habe Folgendes versucht

server {
  listen 80;
  server_name "~^(?!www\.).*";
  return 301 $scheme://www.$host$request_uri;
}

in meiner standortspezifischen Konfigurationsdatei, aber stattdessen passiert Folgendes: Wenn jemand „abc.example.com“ eingibt, wird er zu „www.abc.example.com“ weitergeleitet. Wie kann ich das oben genannte korrigieren, um „www“ zu ersetzen, anstatt es voranzustellen?

Antwort1

Wenn Sie nur eine Domäne hosten example.comund möchten, dass alles dorthin umgeleitet wird www.example.com, sollten Sie einen Standardserver und keinen Server mit regulären Ausdrücken verwenden.

Zum Beispiel:

server {
    listen 80 default_server;
    return 301 $scheme://www.example.com$request_uri;
}
server {
    listen 80;
    server_name www.example.com;
    ...
}

Sehendieses Dokumentfür mehr.

verwandte Informationen