架构师日记——Nginx的Rewrite模块配置
来源:互联网 发布:速学英语软件 编辑:程序博客网 时间:2024/06/05 20:47
Rewrite模块
用来执行URL重定向。这个机制有利于去掉恶意访问的url,也有利于搜索引擎优化(SEO)
Nginx使用的语法源于Perl兼容正则表达式(PCRE)库
基本语法如下:
- ^:必须以^后的实体开头,如^abc,必须以abc开头
- $:必须以$前的实体结尾,如abc$,必须以abc结尾
- .:匹配任意字符
- []:匹配执行字符集内的任意字符,如[1-9],可以匹配1到9任何一个
- [^]:匹配任何不包括在指定字符集内的任意字符串,如[^1-9],可以匹配1到9以外的任何一个
- |:匹配|之前或之后的实体,如(html|js|css),可以匹配html,js,css的任何一个
- ():分组,组成一组用于匹配的实体,通常会有|来协助
通常在上面的规则后还会加上一些匹配多少个的符号
- *:0到多个
- ?:0到1个
+:1到多个
捕获子表达式,可以捕获放在()之间的任何文本,比如:
匹配规则:^(.*)(hello|sir)$
字符串:”hi sir”
捕获的结果:$1=hi $2=sir
这些被捕获的数据,在后面就可以当变量一样使用了
外部请求和内部请求
外部请求是客户端的url,内部请求是Nginx通过特殊的指令触发。
比如:error_page、index、rewrite、try_files、include等等
内部请求分成两种类型
- 内部重定向:URI被改变,可能会匹配到其他的Location
- 子请求:比如使用Addition模块,指令add_after_body孕育你在原始的URI之后指定一个URI,会把该URI被处理后的结果,插入到原始的URI的body中
内部重定向示例
server{ server_name abc; location /abc/{ rewrite ^/abc/(.*)$ /bcd/$1 } location /bcd/{ internal; root pages; }}
条件结构的基本语法
- 没有操作符:指定的字符串或者变量不为空,也不为0开始的字符串,取true
- =,!=,例:if($request_method = POST){…}
- ~,~*,!~,!~*,例:if(
uri ∗"\.jsp ”){…} - -f,!-f:用来测试指定文件是否存在,例:if(-f $request_filename){…}
- -d,!-d:用来测试指定目录是否存在
- -e,!-e:用来测试指定文件、目录或者符号链接是否存在
- -x,!-x:用来测试指定文件是否存在和是否可以执行
- break:跳出if块
- return:中止处理,并返回一个指定的http状态码
- set:初始化或者重定义一个变量
阅读全文
0 0
- 架构师日记——Nginx的Rewrite模块配置
- 架构师日记——Nginx的HTTP模块配置
- 架构师日记——Nginx的配置优化
- NGINX的REWRITE配置
- Nginx的Rewrite配置
- Nginx的Rewrite配置
- 架构师日记——Nginx简介
- Nginx的Rewrite的配置
- 配置nginx服务器的rewrite
- 有关nginx rewrite模块的问号
- nginx的url重写rewrite模块
- nginx学习(九)——nginx的配置系统5之rewrite
- linux Nginx配置篇:rewrite模块参数详解
- Minify在Nginx上的rewrite配置
- Nginx下codeigniter的rewrite规则配置
- Yii在Nginx下的rewrite配置
- 配置nginx适应Thinkphp的URL rewrite
- Minify在Nginx上的rewrite配置
- pyhton学习笔记之安装cx_Oracle模块那些事儿及操作oracle小实例
- iOS工程需要了解的排序算法
- 互联网时代,如何能保障用户的“数据隐私”?
- 斐波那契数列
- mongodb学习笔记(五)——索引
- 架构师日记——Nginx的Rewrite模块配置
- 例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988)
- 默默前行的livego--基于go语言的rtmp直播服务器
- sql注入 access篇
- html5加载提示音
- 十大Intellij IDEA快捷键
- Linux epoll 实现封装
- 文章标题
- hbuilder 真机调试,检测不到处理方式(魅族手机)