Nginx Rewrite的讲解(从新手村到小有成就7)
Nginx Rewrite模块
1、Nginx跳转需求
使用rewrite进行匹配
使用if匹配全局变量后跳转
使用location匹配再跳转
2、rewrite跳转场景
使url看起来更规范,合理
可将动态url地址伪装成静态地址提供服务
网址换新域名后,让旧的访问跳转到新的域名上
3、rewrite跳转实现
ngx_http_rewrite_module模块:
Nginx,支持url重写,if条件判断,但不支持else
循环最多执行10次,超过10次后Nginx将返回500错误
支持pcre(正则表达式)
重写模块set指令
4、Nginx常用的正则表达式
字符 说明
^ 匹配输入字符串的其实位置
$ 匹配输入字符串的结束位置
* 匹配前面的字符零次或多次
+ 匹配前面的字符一次或多次
? 匹配前面的字符零次或一次
. 匹配除“\n”之外的任何单个字符
\ 将后面接着字符标记为一个特殊字符或一个原义字符或一个向后引用
\d 匹配纯数字
{n,} 重复n次或更多次
{n } 重复n次
[c] 匹配单个字符c
[a-z[ 匹配a-z小写字母的任意一个
[a-zA-Z] 匹配a-z小写字母或A-Z大写字母的任意一个
5、Rewrite命令语法
rewrite 正则<regex> 跳转后内容<replacement> 标记<flag>
6、flag标记说明
标记 说明
last 相当于Apache的[L] 标记,表示完成rewrite
break 本条规则匹配完成即终止,不再匹配后面的任何规则
redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新url
permanent 返回301永久重定向, 浏览器地址栏会显示跳转后的URL地址,爬虫更新url
last和break比较
· 使用场景 URL匹配
last 一般写在server和if中 不终止重写后的url匹配
break 一般使用在location中 终止重写后的url匹配
location
location 的三大类
精准匹配:location = / {…} 精确匹配字符串
一般匹配:location / {…} 只要包含…的字符串即可
正则匹配:location ~ / {…} 按照正则表达方式匹配
location常用的匹配规则
= 进行普通字符精确匹配,也就是完全匹配
^~ 表示普通字符匹配。 使用前缀匹配,如果匹配成功,则不再匹配其他 loacaion
~ 区分大小写的匹配
~ * 不区分大小写的匹配
!~ 区分大小写的匹配取非
@ 定义一个location,使用在内部定向的时候
location 优先级
相同类型的表达式,字符串长的优先匹配
首先精确匹配 =
其次前缀匹配 ^ ~
其次是按文件中顺序的正确匹配 ~ 或 ~*
然后匹配不带任何修饰的前缀匹配
最后交给 / 通用匹配,如果没有其他匹配,任何请求都会匹配到
rewrite 和 location的比较
相同点
都可以实现跳转
不同点
rewrite实在同一域名内更改获取资源的路径
location是对一类路径做控制访问或反向代理,还可以proxy_pass到其他机器
rewrite会写在location里,执行顺序
操作
添加映射
vim /etc/hosts
创建日志目录
mkdir -p /var/log/nginx
修改配置文件
vim /usr/local/nginx/conf/nginx.conf
设置跳转
结果
基于ip地址的跳转
进入配置文件
基于旧域名跳转到新域名的加目录
进入配置文件
vim /usr/local/nginx/conf/nginx.conf
创建目录并重启
mkdir -p /usr/local/nginx/html/bbs/post #创建目录
cd /usr/local/nginx/html/bbs/post
vim 1.html
cat /usr/local/nginx/html/bbs/post/1.html
this is 1.html
systemctl stop nginx #开启服务
systemctl start nginx
基于目录下所有php结尾的文件跳转
修改配置文件
重启nginx服务
systemctl stop nginx #开启服务
systemctl start nginx
基于URL的跳转
修改配置文件
总结
Nginx rewrite 跳转
目的
①服务体验
②基于不同场景,精确匹配访问URL,指引跳转合适的场景(新的URL)
方式
rewrite
if
location
location 优先级顺序
1、精确匹配
2、正则前缀匹配 ^~
3、~ * 和 ~ (目录或者文件,如果是目录 ~ 优先级大于 ~ * 如果是文件 ~* 优先级大与 ~)
4、普通匹配
5、/
Nginx Rewrite的讲解(从新手村到小有成就7)相关推荐
- nginx rewrite重写与防盗链配置
nginx rewrite重写规则与防盗链配置方法 时间:2016-02-04 15:16:58来源:网络 导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标 ...
- nginx rewrite 参数和例子
nginx rewrite 参数和例子 推荐参考地址: Mailing list ARChives 官方讨论区 http://marc.info/?l=nginx Nginx 常见应用技术指南[Ngi ...
- Nginx Rewrite详解
Nginx Rewrite详解 引用链接:http://blog.cafeneko.info/2010/10/nginx_rewrite_note/ 原文如下: 在新主机的迁移过程中,最大的困难就是W ...
- Nginx Rewrite规则初探
Nginx rewrite(nginx url地址重写) Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要N ...
- Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)...
一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...
- php 伪静态规则,在线将Apache Rewrite Rules伪静态规则转换为Nginx Rewrite伪静态规则...
一般php的开发者本地使用的都是使用apache服务器,使用伪静态的时候每次都需要转换成nginx rewrite规则,于是做了个在线将Apache htaccess Rewrite伪静态规则自动转换 ...
- nginx rewrite php参数,Nginx rewrite伪静态配置参数详解
nginx rewrite 伪静态配置参数和使用例子(附正则使用说明) 正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大 ...
- 使用lua实现nginx rewrite
2019独角兽企业重金招聘Python工程师标准>>> 上一次上线只是简单的把手机端的流量切换手机端的首页,有点粗糙,现在需要把电脑端相应的页面切换到电脑端的页面,直接用nginx自 ...
- nginx rewrite php参数,Nginx泛域名解析及Rewrite重定向普通页面及带参数的页面
静态地址重定向到带参数的动态地址 rewrite "^(.*)/service/(.*)\.html$" $1/service.php?sid=$2 permanent; 带参数的 ...
- 常用nginx rewrite重定向-跳转实例
常用nginx rewrite重定向-跳转实例: 1,将www.myweb.com/connect 跳转到connect.myweb.com rewrite ^/connect$ http://con ...
最新文章
- java程序设计案例教程 钱银中_《Java程序设计案例教程》【价格 目录 书评 正版】_中国图书网...
- spring aop xml事务配置
- 自学python需要多长时间-Python学习步骤如何安排?多长时间可以学会精通呢?
- 六大Web负载均衡原理与实现
- 怎样找回由于IO设备错误移动硬盘的文件
- C++:const修饰变量、形参、函数
- [ARM]【编译】【实践】 - 浮点编译选项NEON引发的Skia的库Illegal instruction运行错误和解决办法
- C#中通过WMI的Win32_DiskDrive对象获取磁盘驱动器信息简介
- dplyr | 数据导入和预处理的常用函数
- 前端很慌!React 称霸,Vue 凶猛,TypeScript 威逼 JavaScript
- pycharm安装后,找不到Python解释器怎么办
- 系统学习机器学习之神经网络(四) --SOM
- linux命令笔记之ls
- USB Storage启动EBox4300
- 暑期实习面试——超对称,算法实习生
- 分享两款免费的MySQL性能监控工具
- 使用FusionChartsFree整合项目
- Codeforces Round #459 (Div. 1) B. MADMAX
- mac去除视频水印用什么软件?
- BZOJ3034: Heaven Cow与God Bull
热门文章
- 用计算机语言说一局情话,计算机中的情话
- Python爬虫基础:scrapy 框架—ltem和scrapy.Request
- 【Pandas学习笔记Task05】:变形
- C# winform 自定义控件配置代码 多显示 换行
- 大数据模型-银行客户细分与个人客户流失预警
- seacms海洋cms漏洞
- oracle nested loops outer,11g对Nested Loops的改进
- FindMeChat(盲盒社交)-匿名聊天-好玩有趣的社交平台
- form-group 两种常用使用
- 宣布造车后股价上演“过山车”,开心汽车如意算盘恐落空