nginx配置location项的URL匹配规则

Localtion URL的正则匹配规则

示例

location / {
                        try_files $uri @apache;
                        }
#所有的路径都是/开头,表示匹配所有
                location @apache {
                        internal;
                        proxy_pass http://127.0.0.1:1080;
                        include proxy.conf;
                        }
#url重定向至@apache规则
                location ~ .*\.(php|php5)?$
                        {
                                proxy_pass http://127.0.0.1:1080;
                                include proxy.conf;
                        }
#匹配所有以.php或者.php5的URL, ~表示区分大小写
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }
#匹配以.gif,.jpg,.jpeg,.png,.bmp,.swf结尾的url
                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }
#匹配以.js或者.css结尾的url
 
原文:https://blog.csdn.net/wangchuang227/article/details/80474677?utm_source=copy 

匹配的优先级顺序

(localtion =) > (localtion完整url) > (localtion ^~) > (localtion ~,~*) > (lcoaltion部分起始路径) > (/)

  • = 表示精确匹配
  • ^~ 表示指定的路径开头
  • ~ 表示区分大小写的正则匹配
  • ~* 表示不区分大小写的正则匹配
  • / 通用匹配,所有的URL都是以此为开头

使用建议

localtion = / {
    proxy_pass http://127.0.0.1:1080/index.php;
}
#匹配根路径
localtion ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
    root /web/static/;
}
#匹配所有静态文件
localtion / {
    proxy_pass http://127.0.0.1:1080/index.php;
}
#匹配所有的路径

  

猜你喜欢

转载自www.cnblogs.com/ywxbbbbb/p/9764519.html