Jawaban:
server_name mendukung kecocokan sufiks menggunakan sintaks .mydomain.com:
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
atau pada versi 0.9.1 atau lebih tinggi:
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
listen
Arahan default ke port 80 saat tidak ditentukan. Ini sebenarnya sedikit lebih rumit daripada itu secara umum; lihat dokumen konfigurasi nginx untuk lebih jelasnya.
?
dicapai di akhir?
rewrite
dan return 301 $scheme://www.adifferentdomain.com$request_uri;
?
$request_uri
sudah memiliki string kueri, tidak perlu menambahkannya lagi. The return 301
sintaks yang lebih baru, dan seharusnya tidak ada perbedaan perilaku antara dua metode, tetapi ketika saya awalnya menjawab pertanyaan ini, banyak distribusi tidak memiliki versi yang diperlukan, jadi aku pergi dengan sintaks yang lebih aman.
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
dan
Mengapa menggunakan modul penulisan ulang jika Anda bisa melakukannya return
? Secara teknis, return
adalah bagian dari modul penulisan ulang seperti yang dapat Anda baca di sini tetapi potongan ini lebih mudah dibaca imho.
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
Anda juga dapat memberikan pengalihan 301.
return 302 $scheme://forwarded-domain.com$request_uri;
Itu harus bekerja melalui HTTPRewriteModule .
Contoh menulis ulang dari www.example.com ke example.com:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
.
Jika Anda ingin mengarahkan kembali permintaan untuk "domain1.com" ke "domain2.com", Anda dapat membuat blok server yang terlihat seperti ini:
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
listen 443;
Arahan ulang sementara
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
Arahan ulang permanen
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
Dalam file konfigurasi nginx untuk situs tertentu:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
Anda cukup menulis kondisi if di dalam blok server {}:
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}