Bagaimana saya bisa mengalihkan mydomain.com
dan subdomain apa saja *.mydomain.com
untuk www.adifferentdomain.com
menggunakan NGINX?
136
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
danreturn 301 $scheme://www.adifferentdomain.com$request_uri;
?$request_uri
sudah memiliki string kueri, tidak perlu menambahkannya lagi. Thereturn 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.http://wiki.nginx.org/HttpRewriteModule#return
dan
http://wiki.nginx.org/Pitfalls#Taxing_Rewrites
sumber
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.Anda juga dapat memberikan pengalihan 301.
sumber
return 302 $scheme://forwarded-domain.com$request_uri;
Itu harus bekerja melalui HTTPRewriteModule .
Contoh menulis ulang dari www.example.com ke example.com:
sumber
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:
sumber
listen 443;
Arahan ulang sementara
Arahan ulang permanen
Dalam file konfigurasi nginx untuk situs tertentu:
sumber
Anda cukup menulis kondisi if di dalam blok server {}:
sumber