set $my_ip '';
if ( $http_x_forwarded_for = 192.168.1.169){
set $my_ip 1;
} #注意这里的$remote_addr如何用了负载均衡的话,这里应该是
if ( $uri = '' ){ set $my_ip 1;}
if ( $remote_addr = 192.168.1.169 ){ set $my_ip 1;}
location ^~ /a{
alias /home/test/a/;
index index.html;
}
location ^~ /b{
alias /home/test/b/;
index index.html;
}
# location ^~ /c{
alias /home/test/a/;
# index index.html;
# }
location ^~ /{
#匹配成功后跳转,执行永久301跳转
# return 301 https://$server_name:1992$request_uri/v1/;
rewrite ^(/)$ https://$host$1b/ permanent;
if ( $http_x_forwarded_for !~ 192\.168\.0\..*){
rewrite ^(.*)$ https://moonjer.com permanent;
}
#rewrite ^(.*)$ https://movie.moonjer.com:1992$1 permanent;
# return 301 https://movie.moonjer.com:1992$request_uri;
}
location 指令说明,该语法用来匹配 url,语法如上:
=:用于不含正则表达式的 url 前,要求字符串与 url 严格匹配,匹配成功就停止向下搜索并处理请求。
~:用于表示 url 包含正则表达式,并且区分大小写。
~*:用于表示 url 包含正则表达式,并且不区分大小写。
^~:用于不含正则表达式的 url 前,要求 Nginx 服务器找到表示 url 和字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再匹配。
如果有 url 包含正则表达式,不需要有 ~ 开头标识。
评论 (0)