哎,我需要静静,刚刚在去怎么优化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;
}

最新文章

  1. android 扫描
  2. JDK安装(windows/linux)
  3. Android ActionBar详解(三):ActionBar实现切换Tabs标签
  4. 我是如何开发一个连锁企业的信息系统的,NO.1
  5. 关于Kafka 的 consumer 消费者处理的一些见解
  6. [LeetCode] Sliding Window Median 滑动窗口中位数
  7. Asp.Net Core配置的知识总结
  8. 前端 HTML body标签相关内容 常用标签 表格标签 table
  9. 【洛谷p2312】解方程
  10. JavaScript 删除数组中的对象
  11. php--------使用js生成二维码
  12. UI5-文档-4.6-Modules
  13. noi题库(noi.openjudge.cn) 1.13编程基础之综合应用 T12 分数求和
  14. Python3中的yield from语法
  15. restframework序列化字段和字段构造方式
  16. TP框架项目部署linux大小写问题
  17. oracle 归档空间满的解决办法
  18. jquery 报错 Uncaught TypeError: Illegal invocation
  19. [GO]并发实现聊天室服务器
  20. flume-ng源码阅读memory-channel(原创)

热门文章

  1. 安装pyautogui时报错备注
  2. 技巧:开启ubuntu系统的ssh服务
  3. free -m命令输出详解
  4. 安装mplayer2和smplayer2
  5. CRLF注入攻击
  6. 祝高二学弟学妹AK NOIp2018!!!!!!
  7. switch 和 if...else if 的区别
  8. em和rem的区别
  9. 信息无缝滚动效果marquee
  10. css改变透明背景png图片的图标颜色