Nginx学习(2)
来源:互联网 发布:淘宝专业版免费的模板 编辑:程序博客网 时间:2024/05/29 16:36
Rewrite
Rewrite模块
功能:用来执行URL重定向。这个机制有利于去掉恶意访问的url,也有利于搜索引擎优化(SEO)
Nginx使用语法源于Perl兼容正则表达式(PCRE)库,基本语法如下:
^ : 必须以^后的实体开头
$ :必须以$前的实体结尾
. :匹配任意字符
[] :匹配指定字符集内的任意字符
[^] :匹配任何不包括在指定字符集内的任意字符串
| :匹配|之前或之后的实体
() :分组,组成一组用于匹配的实体,通常会有|来协助
捕获子表达式,可以捕获放在()之间的任何文本,比如:
^(.*)(hello|sir)$ 字符串为hi sir
捕获的结果: 这些被捕获的数据,在后面就可以当变量一样使用了
内部请求
外部请求是客户端的url,内部请求是Nginx通过特殊的指令触发。比如:
error_page index rewrite try_files include等等
内部请求分成两种类型
- 内部重定向: URI被改变,可能会匹配到其他的Location
- 子请求: 比如使用Addition模块,指令add_after_body 允许你在原始的URI之后指定一个URI,会把该URI被处理之后的结果,插入到原始的URI的body中。
内部重定向示例:
server { server_name www.xxx.com location /xxx/ { 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学习(2)
- Nginx学习(2)
- nginx学习笔记(2):nginx基础概念之connection
- Nginx学习笔记2—Nginx(Win32) nginx.conf 中文详解
- Nginx学习笔记2—Nginx(Win32) nginx.conf 中文详解
- Nginx源码学习(2)----ngx_string
- nginx学习笔记2
- nginx学习笔记2
- nginx学习(2)
- nginx 学习(一)
- nginx学习(3)
- nginx学习(一)
- Nginx学习(一)
- Nginx学习(1)
- Nginx学习(3)
- nginx学习(1)
- Nginx学习(1)
- Nginx学习(3)
- 判断线段与圆是否相交
- android webView 的WebSettings说明
- IntentService简单使用与总结
- 有关iOS11和iPhoneX的适配问题
- React Native TableViewCell封装
- Nginx学习(2)
- 周六的交流17.10.28_网络安全
- input输入手机号每四位数增加个空格
- CPDA学员请注意:老师们又在研究课程新内容啦!
- spring AspectJ的Execution表达式
- 字符串常量池(String Constant Pool)深入解析
- 图像分割之(二)Graph Cut(图割)
- 创建用户故事地图的步骤
- CSS中的圣杯布局与双飞翼布局