Yanıtlar:
server_name , .mydomain.com sözdizimini kullanan sonek eşleşmelerini destekler:
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
veya herhangi bir sürüm 0.9.1 veya üzeri:
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
listen
Yönerge belirtilmediğinde varsayılan olarak bağlantı noktası 80'dir. Aslında genel olarak bundan biraz daha karmaşık; bkz nginx yapılandırma dokümanlar Daha fazla ayrıntı için.
?
Sonunda ne başarır ?
rewrite
ve return 301 $scheme://www.adifferentdomain.com$request_uri;
?
$request_uri
zaten sorgu dizesinin var, tekrar eklenecek gerek yoktur. return 301
Sözdizimi yeni ve üzerinde iki yöntem arasındaki davranış fark olmalı, ama ben aslen bu soruyu yanıtladı zaman daha güvenli sözdizimi ile gittik, birçok dağılımları, gerekli sürümünü yoktu.
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
ve
Mümkünse neden yeniden yazma modülünü kullanasınız return
? Teknik olarak, burada okuyabileceğinizreturn
gibi yeniden yazma modülünün bir parçasıdır ancak bu pasajın imho'yu okuması daha kolaydır.
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
Ayrıca 301 yönlendirmesi de verebilirsiniz.
return 302 $scheme://forwarded-domain.com$request_uri;
Bu, HTTPRewriteModule aracılığıyla çalışmalıdır .
Www.example.com'dan example.com'a yeniden yazma örneği:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
.
"Alan1.com" için istekleri "alan2.com" a yeniden yönlendirmek isterseniz, şuna benzer bir sunucu bloğu oluşturabilirsiniz:
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
listen 443;
Geçici yeniden yönlendirme
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
Kalıcı yönlendirme
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
Belirli site için nginx yapılandırma dosyasında:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
Sunucu {} bloğunun içine basitçe bir if koşulu yazabilirsiniz:
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}