web-dev-qa-db-de.com

Nginx-Konfiguration, wie kann ich eine primäre Multisite-Domain umleiten, aber nicht deren Unterordner oder andere Domains?

Umgebung

Diese Umgebung ist Nginx mit installiertem Wordpress Multisite.

Frage

Ich muss die primäre Domain mit mehreren Standorten (z. B. domain.com, www.domain.com) auf eine andere Domain (z. B. domain-new.com, www.domain-new.com) umleiten. Ich möchte jedoch nicht, dass Unterordner umgeleitet werden. Zum Beispiel muss der Ordner/wp-admin/NICHT umgeleitet werden, sonst kann ich das Netzwerk mit mehreren Standorten nicht verwalten.

Natürlich möchte ich nicht, dass andere Domains umgeleitet werden. Nur der oben angegebene.

Ich habe Anweisungen dazu in Apache gefunden, aber ich konnte es in Nginx nicht herausfinden.

Was mir bisher eingefallen ist

Ich bin auf folgendes gestoßen:

server {
  listen 80;
  server_name domain.com www.domain.com;
  rewrite ^ $scheme://www.domain-new.com$request_uri permanent;

Dadurch werden jedoch auch Unterordner von domain.com umgeleitet. Ich sollte sicherstellen, dass der Ordner wp-admin von der Umleitung ausgeschlossen wird.

Ich bin auch auf diese Option gestoßen:

location = / {
rewrite ^ http://domain-new.com/$uri permanent;    
}

Ich konnte jedoch keine Informationen darüber finden, ob der Befehl location eine Domäne enthalten kann und wie sichergestellt werden kann, dass ein bestimmter Unterordner (wp-admin) nicht in der Umleitung enthalten ist.

1
omega33

Wenn Ihr nginx-Serverblock mehrere Domänen verarbeitet, besteht die einfachste Lösung darin, den $Host-Parameter in einem if-Block zu testen. Ändern Sie außerdem die Anweisung rewrite so, dass sie nur einer einzelnen URI entspricht.

Zum Beispiel:

if ($Host = domain.com) {
    rewrite ^/$ https://new-domain.com permanent;
}

Dies wird in der Nähe des oberen Bereichs des vorhandenen Blocks server platziert.

0
Richard Smith