zoukankan      html  css  js  c++  java
  • nginx之location配置

    一、location 语法规则讲解

    语法规则

    location [=|~|~*|^~|/] /uri/ { … }

    • = 开头 表示精确匹配
    • ^~ 开头 表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
    • ~ 开头 表示区分大小写的正则匹配
    • ~*开头 表示不区分大小写的正则匹配
    • !和!*分别为区分大小写不匹配及不区分大小写不匹配 的正则 (不常用)
    • / 通用匹配,任何请求都会匹配到。
    多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):
    首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
    

    二、语法的举例

    • 已 = 开头:表示精确匹配
            location = /test.php {
                rewrite ^/(.+).php /index.php?c=$1;
                #  /test.php => /index.php?c=test   
            }
    
    • 已 ^~ 开头:表示uri以某个常规字符串开头,理解为匹配 url路径即可
            location ^~ /admin/ {
                rewrite ^/admin/(.+).php$ /index.php?c=$1;
                # /admin/test.php => /index.php?c=test
            }
    
    • 已 ~ 开头 :表示区分大小写的正则匹配
            
            location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }
    
    
    • 已 ~*开头: 表示不区分大小写的正则匹配
            location ~* /web/.*.php {
                rewrite ^/web/(.*).php$ /index.php?c=$1;
                # /web/test.php => /index.php?c=test
            }
    
    
    • 已/ 开头 : 表示所有的规则都会进入这个location 中

    三、实现中的一些使用

    • favcion.ico
    location = /favicon.ico {    // 精确匹配  /favicon.ico 
                   root www          // 从www目录中取 favicon.ico
            }
    

    如果喜欢看小说,请到183小说网

  • 相关阅读:
    模拟22
    模拟21
    模拟20
    模拟19
    晚测11
    Redis 内存模型
    Redis AOF重写
    基础省选题选做
    八年级上 期中考试祭
    P2049 魔术棋子 题解
  • 原文地址:https://www.cnblogs.com/xiaobaiskill/p/10824252.html
Copyright © 2011-2022 走看看