• nginx rewrite规则笔记


    1. 优先级
      1. 在nginx的location和配置中location的顺序没有太大关系。正location表达式的类型有关。相同类型的表达式,字符串长的会优先匹配。
          
        第一优先级:等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。
        第二优先级:^~类型表达式。一旦匹配成功,则不再查找其他匹配项。
        第三优先级:正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。
        第四优先级:常规字符串匹配类型。按前缀匹配。
    2. 2.匹配规则(localtion后面)
      1.   ~ 表示执行一个正则匹配,区分大小写
      2.  ~* 表示执行一个正则匹配,不区分大小写
      3.  ^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。
      4. = 进行普通字符精确匹配。也就是完全匹配。
      5. @ "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files
      6. * -f和!-f用来判断是否存在文件
      7. * -d和!-d用来判断是否存在目录
      8. * -e和!-e用来判断是否存在文件或目录
      9. * -x和!-x用来判断文件是否可执行

      3.rewrite指令的最后一项参数为flag标记,flag标记有:
          1.last    相当于apache里面的[L]标记,表示rewrite。
            2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。
          3.redirect  返回302临时重定向,浏览器地址会显示跳转后的URL地址。
          4.permanent  返回301永久重定向,浏览器地址会显示跳转后的URL地址。

      4.使用变量$1,$2

          

    rewrite ^(/data/.*)/geek/(w+).?.*$ $1/linux/$2.html last;
    

      $1和$2分别代表中间正则能匹配到的变量,url/data/distro/geek/test.php 将会转到 url/data/distro/linux/test.html

    一些代码示例

    location /data/ {
        rewrite ^(/data/.*)/geek/(w+).?.*$ $1/linux/$2.html break;
        return  403;
    }
    
    
    
    #使用一些自带变量。$scheme, $http_host, $http_user_agent, 
    if ($scheme = "http") {
      rewrite ^ https://www.thegeekstuff.com$uri permanent;
    }
    
    if ($http_host = thegeekstuff.com) {
      rewrite  (.*)  https://www.thegeekstuff.com$1;
    }
    
    if ($http_user_agent = MSIE) {
        rewrite ^(.*)$ /pdf/$1 break;
    }
    
    
    
    
    #捕获错误日志
    error_log /var/log/nginx/error.log notice;
    rewrite_log on;
    

      https://www.thegeekstuff.com/2017/08/nginx-rewrite-examples/

      

  • 相关阅读:
    洛谷【P1177】【模板】归并排序
    洛谷【P1177】【模板】快速排序
    洛谷【P1104】生日(冒泡排序版)
    洛谷【P1104】生日(插入排序版)
    洛谷【P1104】生日(选择排序版)
    BZOJ5443:[CEOI2018]Lottery
    ReactNative---ref的用法和技巧
    ios---运用MJRefresh组件设置下拉刷新
    ReactNative---setState与性能的平衡
    ios---设置UITabBarController的字体颜色和大小
  • 原文地址:https://www.cnblogs.com/pangxiaox/p/8835556.html
Copyright © 2020-2023  润新知