Jak mogę przekierować mydomain.com
i dowolną subdomenę *.mydomain.com
do www.adifferentdomain.com
korzystania z NGINX?
139
nazwa_serwera obsługuje dopasowania sufiksów przy użyciu składni .moja_domena.com:
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
lub w dowolnej wersji 0.9.1 lub nowszej:
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
listen
Dyrektywa domyślnie przyjmuje port 80, jeśli nie jest określony. W rzeczywistości jest to trochę bardziej skomplikowane niż ogólnie; zobacz dokumentację konfiguracji nginx, aby uzyskać więcej informacji.?
osiągniesz na końcu?rewrite
ireturn 301 $scheme://www.adifferentdomain.com$request_uri;
?$request_uri
już ma ciąg zapytania, nie ma potrzeby ponownego dodawania go.return 301
Składnia jest nowszy, i nie powinno być żadnej różnicy w zachowaniu między tymi dwoma metodami, ale kiedy pierwotnie odpowiedział na to pytanie, wiele dystrybucji nie ma wymaganej wersji, więc poszedłem z bezpieczniejszej składni.http://wiki.nginx.org/HttpRewriteModule#return
i
http://wiki.nginx.org/Pitfalls#Taxing_Rewrites
źródło
Po co używać modułu przepisywania, jeśli możesz
return
? Technicznie rzecz biorąc,return
jest częścią modułu przepisywania, jak możesz przeczytać tutaj, ale ten fragment jest łatwiejszy do odczytania imho.Możesz również nadać mu przekierowanie 301.
źródło
return 302 $scheme://forwarded-domain.com$request_uri;
To powinno działać przez HTTPRewriteModule .
Przykład przepisania z www.example.com na example.com:
źródło
server_name example.com www.example.com;
.Jeśli chcesz przekierować żądania z „domena1.com” do „domena2.com”, możesz utworzyć blok serwera, który wygląda następująco:
źródło
listen 443;
Możesz po prostu napisać warunek if w bloku {} serwera:
źródło
Tymczasowe przekierowanie
Trwałe przekierowanie
W pliku konfiguracyjnym nginx dla określonej witryny:
źródło
Używam tego kodu w moich witrynach
źródło