map
이 변수는 사용될 때만 평가되므로 권장되는 방법은 아마도를 사용하는 것입니다 .
또한 return 301 ...
정규 표현식을 컴파일 할 필요가 없기 때문에 다시 쓰기보다 선호도가 높습니다.
다음은 연결 문자열로서 호스트 및 사용자 에이전트가 단일 정규식과 비교되는 예입니다.
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;
}
}
예를 들어 도메인이 2 개가 아닌 더 많은 도메인이있는 경우 더욱 유연 할 수 있습니다.
여기에서 우리는지도 www.domain.com
사용자 에이전트와 함께 시작하는 Agent
으로 http://www.domain2.com
하고 www.domain2.com
정확한 사용자 에이전트 Other Agent
에 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 맵에서 연결된 문자열이 작동하려면 nginx 0.9.0 이상이 필요합니다.