Cara yang disarankan mungkin akan menggunakan map, juga karena variabel-variabel ini dievaluasi hanya ketika mereka digunakan.
Juga penggunaan return 301 ...lebih disukai daripada penulisan ulang, karena tidak ada ekspresi reguler yang harus dikompilasi.
Di sini contoh di mana host dan agen-pengguna sebagai string gabungan dibandingkan dengan regex tunggal:
map "$host:$http_user_agent" $my_domain_map_host {
default 0;
"~*^www.domain.com:Agent.*$" 1;
}
server {
if ($my_domain_map_host) {
return 302 http://www.domain2.com$request_uri;
}
}
Dan ini bisa menjadi lebih fleksibel, misalnya jika tidak ada 2 tetapi lebih banyak domain yang terlibat.
Di sini kami memetakan www.domain.comdengan agen-pengguna yang dimulai dengan Agentke http://www.domain2.comdan www.domain2.comdengan agen-pengguna yang tepat Other Agentuntuk http://www.domain3.com:
map "$host:$http_user_agent" $my_domain_map_host {
default 0;
"~*^www.domain.com:Agent.*$" http://www.domain2.com;
"~*^www.domain2.com:Other Agent$" http://www.domain3.com;
}
server {
if ($my_domain_map_host) {
return 302 $my_domain_map_host$request_uri;
}
}
NB, Anda membutuhkan nginx 0.9.0 atau lebih tinggi agar string bersambung di peta berfungsi.