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;
}
nginx里面的rewrite配置的更多相关文章
- nginx简单的rewrite配置
假设当前已存在location /test/,希望配置一个短连接/ts/与之相同,就需要用到rewrite 直接配置到server段 rewrite ^/ts/(.*) /test/$1; 或者放到l ...
- nginx里面的location 规则匹配
nginx location语法 ~ # 区分大小写的正则匹配 location ~ \.(gif|jpg|png|js|css)$ { #规则D } ~* # 不区分大小写的正则匹配(和~的功能相同 ...
- redis如何在spring里面的bean配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- nginx1.14.0版本server、location、rewrite配置
server配置demo 在192.168.10.140(centos7)上修改: /home/program/nginx/conf/nginx.conf 添加一个server server { li ...
- 17.Nginx 重写(location rewrite)
Nginx 重写(location / rewrite) 目录 Nginx 重写(location / rewrite) 常见的nginx正则表达式 location lication的分类 loca ...
- nginx location配置与rewrite配置
注:原文出处 www.linuxidc.com/Linux/2015-06/119398.htm 1. location正则写法 一个示例: location =/{ # 精确匹配 / ,主机名后面不 ...
- Nginx教程(四) Location配置与ReWrite语法
Nginx教程(四) Location配置与ReWrite语法 1 Location语法规则 1.1 Location规则 语法规则: location [=|~|~*|^~] /uri/ {- } ...
- apache、nginx的虚拟域名配置和rewrite配置,以及web缓存的几种方式
web缓存一般用来缓解数据库压力. 通常有几种方法,文件静态化,缓存服务memcached.redis等. 伪静态,一般指在url上貌似访问静态html页的形式,这样有利于搜索引擎访问到网站页面,实际 ...
- nginx配置文件中,location字段里面的root字段和别名alias
1. location里面的root例子 server{ listen ; server_name www.wzw.com; location /www { root /data/; //设置虚拟主机 ...
随机推荐
- java——编译和运行
Java源代码---->编译器---->Java字节码(即虚拟指令..class文件.特殊的二进制文件.二进制字节码文件)---->jvm---->解释器(jvm的一部分)-- ...
- my.宠物升级79级
1.蚌仙子 74级半不到的时候,吃 月华露(500000经验的那种) 吃3个 正好 79级半 我记得 之前 是升满75级 再吃月华露 到79级的时候 经验溢出了.不突破还好,突破的话 宠物就升级了 ...
- inventor怎样卸载干净
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- [转]jQuery调用ASPX返回json
本文转自:http://www.cnblogs.com/fire-phoenix/archive/2009/11/13/1614146.html 本文介绍如何在ASP.NET(ASP.NET/AJAX ...
- [转] javascript另类方法高效实现htmlencode()与htmldecode()函数
本文转自:http://blog.csdn.net/cuixiping/article/details/7846806 最常见的做法是采用正则表达式替换的方法,将特殊字符如 < > &am ...
- (转)Linux命令:使用dig,nslookup命令解析域名
Linux命令:使用dig命令解析域名 Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息. dig的全称是 (domain infor ...
- pat1101. Quick Sort (25)
1101. Quick Sort (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CAO, Peng There is a ...
- React.js 小书 Lesson4 - 前端组件化(三):抽象出公共组件类
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson4 转载请注明出处,保留原文链接和作者信息. 为了让代码更灵活,可以写更多的组件,我们把这种模 ...
- linux常用安装命令(ubuntu)
安装 net-tools 安装命令 sudo apt install net-tools 安装ssh sudo apt-get install openssh-server 查看是否安装成功 sudo ...
- maven课程 项目管理利器-maven 3-5 maven生命周期和插件 4星
本节重点: maven插件的使用 本节主要内容: 1 maven生命周期 2 maven插件的使用 3 零散知识点 1 maven生命周期 maven生命周期主要有三个: a clean 清理项目 ...