Antworten:
Servername unterstützt Suffix-Übereinstimmungen mit der .mydomain.com-Syntax:
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
oder auf einer Version 0.9.1 oder höher:
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
listen
Direktive verwendet standardmäßig Port 80, wenn nichts angegeben ist. Es ist tatsächlich etwas komplizierter als das im Allgemeinen; Weitere Informationen finden Sie in den Nginx-Konfigurationsdokumenten .
?
am Ende?
rewrite
und return 301 $scheme://www.adifferentdomain.com$request_uri;
?
$request_uri
die Abfragezeichenfolge bereits vorhanden ist, muss sie nicht erneut angehängt werden. Die return 301
Syntax ist neuer und es sollte keinen Unterschied im Verhalten zwischen den beiden Methoden geben, aber als ich diese Frage ursprünglich beantwortete, hatten viele Distributionen nicht die erforderliche Version, also habe ich mich für die sicherere Syntax entschieden.
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
und
Warum das Rewrite-Modul verwenden, wenn Sie können return
? Technisch gesehen return
ist es Teil des Rewrite-Moduls, wie Sie hier lesen können, aber dieses Snippet ist imho einfacher zu lesen.
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
Sie können ihm auch eine 301-Weiterleitung geben.
return 302 $scheme://forwarded-domain.com$request_uri;
Das sollte über HTTPRewriteModule funktionieren .
Beispielumschreibung von www.example.com auf example.com:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
.
Wenn Sie Anforderungen für "domain1.com" an "domain2.com" umleiten möchten, können Sie einen Serverblock erstellen, der folgendermaßen aussieht:
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
listen 443;
Temporäre Weiterleitung
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
Permanente Weiterleitung
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
In der Nginx-Konfigurationsdatei für eine bestimmte Site:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
Sie können einfach eine if-Bedingung in den Serverblock {} schreiben:
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}