1、
location / {
if (!-f $request_filename){
rewrite ^/(.+)$ /uri.php last;
}
}
优先级最低的匹配,就是说其它所有location都不匹配时执行它,这里用了一个rewrite重定向到根下面的uri.php做处理。(如果uri.php也不存在那就会报404)
2、
location = / {
*****
}
这个貌似和1长得差不多,就差一个=号就差大了,这个是最高优先级的匹配,是绝对匹配。当访问 http://host/ 时就会匹配到2
3、
location ^~ /static/ {
}
^~ 是开头标志,这个匹配以/static/开头的路径,如 http://host/static/test_12431.html。复杂点可以作伪静态。
4、
location ~ .(gif|jpg|png|js|css)$ {
}
~ 区分大小写的匹配。这个和3形成对比,3我只管匹配头,4我只管匹配尾部。这个匹配的意思就是所有以.gif,.jpg……结尾的文件,也就是静态文件,这个可以做公共资源的服务端缓存(虽然客户端的浏览器一般也做了)。
5、
location ~* .png$ {
}
~*不分大小心匹配png格式的文件。可以匹配到 XXXXXX.png,XXXXXX.PNG,XXXXXX.Png,XXXXXX.pNg……
6、
location = /mob_api/session/device_login {
}
这个会绝对匹配到 /mob_api/session/device_login 这个路径(an手机游戏项目的一个登陆地址……)
先说这么多,了解了操作符,熟悉了正则,各种匹配。 但是每次只有一个location会被匹配到,具体优先级参看Nginx的Location配置语法介绍、优先级说明