nginx location指令详解
通过指定模式来与客户端请求的URI相匹配,基本语法如下:location [=|||^~|@] pattern{……}*
1、没有修饰符模糊匹配 :以指定模式开始:
server {
server_name www.80shihua.com;
location /aabbcc {
……
}
}
那么,如下是对的:
http://www.80shihua.com/aabbcc
http://www.80shihua.com/aabbcc?s=1
http://www.80shihua.com/aabbcc/
http://www.80shihua.com/aabbccc</pre>
2、=精确匹配:
server {
server_name www.80shihua.com
location = /aabbcc {
……
}
}
正确:
http://www.80shihua.com/aabbcc
http://www.80shihua.com/aabbcc?s=1
错误:
http://www.80shihua.com/aabbcc/
http://www.80shihua.com/aabbcc</pre>
3、~区分大小写匹配 :
server {
server_name baidu.com;
location ~ ^/aabbcc$ {
……
}
}
正确:
http://www.80shihua.com/aabbcc
http://www.80shihua.com/aabbcc?s=1
错误:
http://www.80shihua.com/Aabbcc/
http://www.80shihua.com/AaBbcc</pre>
4、~* 表示:指定的正则表达式不区分大小写
server {
server_name baidu.com;
location ~* ^/aabbcc$ {
……
}
}
正确:
http://www.80shihua.com/Aabbcc
http://www.80shihua.com/Aabbcc?s=1
http://www.80shihua.com/aaBbcc
http://www.80shihua.com/aAbbCc</pre>
5、root 、alias指令区别
location /img/ {
alias /var/www/image/;
}
若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件</pre>
location /img/ {
root /var/www/image;
}
若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。</pre>
alias是一个目录别名的定义,root则是最上层目录的定义。