zoukankan      html  css  js  c++  java
  • nginx里面的rewrite配置

    哎,我需要静静,刚刚在去怎么优化dom层级,发现更新完代码,层级又蹭蹭蹭的往上涨,顿时没脾气了,还是把昨天的nginx配置总结下,增加点动力,昨天前天两天都在搞这个问题,也是搞的没脾气,网上查了很多资料

    问题:线上的css和js都是经过压缩的,自动生成版本号,因为去除后端的重定向,所以需要抓去线上的单个文件代理到本地
    回答:找了半天没有解决方案,可以正则匹配,但不知道nginx里面怎么去用这个正则,nginx不支持js里面的replace,所以不能正则这样匹配,转化思路,还是抓取index.html首文件,在首文件价格参数,有environment这个参数,后端重定向,没有这个参数,后端不进行重定向

    语法:rewrite regex replacement [flag];

    如果一个URI匹配指定的正则表达式regex,URI就按照replacement重写,该指令通过正则表达式的使用用来改变URI。可以同时存在一个或者多个指令,按顺序依次对URL进行匹配和处理

     

    flag可以是如下参数

    last:停止处理后续rewrite指令集,然后对当前重写的新URI在rewrite指令集上重新查找。
    break:停止处理后续rewrite指令集,并不在重新查找,但是当前location内剩余非rewrite语句和location外的的非rewrite语句可以执行。
    redirect:如果replacement不是以http:// 或https://开始,返回302临时重定向
    permant:返回301永久重定向

     

     niginx的内容设置中必须注意的一些问题

        1.nginx在进行rewrite的正则表达式中只会将url中?前面的部分拿出来匹配

        2.匹配完成后,?后面的内容将自动追加到url中(包含?),如果不让后面的内容追加上去,请在最后加上?即可

        3.如果要活的?后面的内容则请使用$query_string

    rewrite实例

    参数实例1
    将
    https://xxx/dist/index.html?a=1&b=2&c=3
    转化为
    https://xxx/dist/index1.html

    location这么写

    location /index.html {
      rewrite ^/(.*) /index1.html? redirect;
    }
    参数实例2
    将
    https://xxx/dist/index.html?a=1&b=2&c=3
    转化为
    https://xxx/dist/index1.html?a=1&b=2&c=3&d=4

    location这么写

    location /index.html {
      rewrite ^/(.*) /index1.html?d=4&$query_string? redirect;
    }
    参数实例3
    将
    https://xxx/dist/index.html?a=1&b=2&c=3
    转化为
    https://xxx/dist/index.html?a=1&b=2&c=3&d=4

    location这么写

    set $flag 0;
    if ($request_uri ~* "index.html") {
        set $flag "${flag}1";
    }
    
    if ($query_string !~* "^.*d=S*.*$") {
        set $flag "${flag}2";
    }
    
    if ($flag = "012") {
        rewrite ^/(.*) /index.html?d=4&$query_string? redirect;
    }
    location /dist/index1.xhtml { //后端重定向地址
        rewrite ^/(.*) /dist/index1.html redirect;
    }
  • 相关阅读:
    分布式事务处理总结
    职业生涯的第一个三年
    Linux 启动SVN服务
    TensorFlow入门:安装常用的依赖模块
    TensorFlow入门:mac 安装 TensorFlow
    shiro 配置导图
    spring集成JPA的三种方法配置
    tomcat server 报错之 More than the maximum allowed number of cookies
    Jquery系列:checkbox 获取值、选中、设置值、事件监听等操作
    [转]Tomcat优化之内存、并发、缓存
  • 原文地址:https://www.cnblogs.com/wzndkj/p/7844649.html
Copyright © 2011-2022 走看看