匹配规则
匹配顺序
示例
[root@python vhast]# cat test.conf
server {
server_name haha.com;
#listen 8080;
rewrite_log on;
error_page 404 /403.html;
#return 405;
location /{
#return 404 "find nothing!\n";
}
root html/;
location /first {
rewrite /first(.*) /second$1 last;
return 200 1first!\n';
}
location /second {
#rewrite /second(.*) /third$1 break;
rewrite /second(.*) /third$1 last;
return 200 'second!\n';
}
location /third {
return 200 'third!\n';
}
location /redirect1 {
rewrite /redirect1(.*) $1 permanent;
}
location /redirect2 {
rewrite /redirect2(.*) $1 redirect;
}
location /redirect3 {
rewrite /redirect3(.*) http://haha.com:$1;
}
location /redirect4 {
rewrite /redirect4(.*) http://haha.com:$1 permanent;
}
location ~ /Test1/$ {
return 200 'first regular expressions match! \n';
}
location ~* /Test1/(\w+)$ {
return 200 'longest regular expressions match! \n';
}
location ^~ /Test1/ {#禁止正则匹配
return 200 'stop regular expressions match! \n';
}
location /Test1/Test2 {
return 200 'longest prefix string match! \n';
}
location /Test1 {
return 200 'prefix string match! \n';
}
location = /Test1 { #精确匹配
return 200 'exact match!\n';
}
}
测试
[root@python vhast]# curl http://haha.com/Test1
exact match!
[root@python vhast]# curl http://haha.com/Test1/
stop regular expressions match!
[root@python vhast]# curl http://haha.com/Test1/Test2
longest regular expressions match!
[root@python vhast]# curl http://haha.com/Test1/Test2/
longest prefix string match!
[root@python vhast]# curl http://haha.com/test1/Test2 #没有匹的话会记住匹配最长的那个
longest regular expressions match!