nginx学习之rewrite
rewrite 语法学习
什么是rewrite
nginx的rewrite主要功是实现URL地址重写。nginx的rewrite规则需要PCRE的支持,既可以通过Perl兼容正则表达式进行规则匹配。nginx在默认编译安装时就会安装rewrite。
rewrite的语法
Syntax: rewrite regex replacement [flag];
Default: —
Context: server, location, if
所属模块:
rewrite属于ngx_http_rewrite_module模块
语法简介:
rewrite为关键字固定写法regex为perl兼容正则表达式语句,用来进行规则匹配replacement重写后的URLflagrewrite支持的flag标记
可选的flag参数可以是其中之一:
last:
停止执行当前这一轮的ngx_http_rewrite_module指令集,然后查找匹配改变后URI的新location;
break:
停止执行当前这一轮的ngx_http_rewrite_module指令集;
redirect:
在replacement字符串未以http://或https://开头时,使用返回状态码为302的临时重定向;
permanent:
返回状态码为301的永久重定向。
rewrite指令执行先后的顺序是其该指令在nginx配置文件中的出现的位置rewrite指令在其正则表示式匹配的地方的只对部分域名后面的URL进行匹配
例: 当一个访问的URL为http://www.drjc.com/data/list.html那么rewrite的regex(正则表达式)匹配的为/data/list.html- 如果
replacement的字符串以http://或https://开头,nginx将结束执行过程,并返回给客户端一个重定向。 - 在对rewrite指令的last和break标志的使用可以参考下面的建议:
使用rewrite指令在根location(也就是 `location /`) 和server{}区块时建议使用`flag`标志为`last`标志;
如果在普通的location区块中必须不能使用last,建议使用break标志;
在if{}指令中建议使用break标志;
如果正则表达式中包含字符“{}”或者“;”整个正则表达式应该被包含在单引号或双引号的引用中;
- 如果replacement字符串包括新的请求参数,以往的请求参数会添加到新参数后面。如果不希望这样,在replacement字符串末尾加一个问号“?”,就可以避免
比如:
rewrite ^/users/(.*)$ /show?user=$1? last;
nginx学习之rewrite的更多相关文章
- Nginx学习总结
2017年2月23日, 星期四 Nginx学习总结 Nginx是目前比较主流的HTTP反向代理服务器(其企业版提供了基于TCP层的反向代理插件),对于构建大型分布式web应用,具有举足轻重的作用.简单 ...
- Nginx学习---Nginx的详解_【all】
1.1. Nginx简介 1.什么是nginx nginx:静态的,开源的www软件,可以解析静态的小文件(低于1M ),支持高并发占用较发少的资源(3W并发,10个进程,内存150M),跨平台 te ...
- Nginx学习之从零搭建静态资源网站
前言 在某学习网站学习了nginx的安装和使用,以此文记录. 环境准备 安装在VMWare下的Centos虚拟机.由于我这是新装的虚拟机.所以很多插件都没有,这里干脆一次性安装上. wget ...
- Nginx学习一路向西
Nginx 学习一路向北 Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱 1. Nginx简介 1.1 Nginx 概述 NGINX是一个免费.开源.高性能.轻量 ...
- thinkphp nginx php-fpm url rewrite 导致 404 错误
## thinkphp nginx php-fpm url rewrite 导致 404 错误 之前thinkphp的系统部署在apache上,考虑到在并发性能nginx比apache强悍得多,所以在 ...
- Nginx学习回顾总结 部分:
21:46 2015/11/9Nginx学习回顾总结进程间通信,近似于socket通信的的东西:才发现这种通信并不是很难,并不是我想象的那样很多内容,新领域,入门只是几个函数的使用而已.以前猜过是这样 ...
- nginx重写规则报nginx: [emerg] directive "rewrite" is not terminated by ";"
对于下面的重写规则 rewrite ^/gongying/([\d]{8})_([\d]+).html$ /index.php?app=support&act=view&pts=$1& ...
- Nginx 之四: Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能
一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...
- Nginx学习笔记4 源码分析
Nginx学习笔记(四) 源码分析 源码分析 在茫茫的源码中,看到了几个好像挺熟悉的名字(socket/UDP/shmem).那就来看看这个文件吧!从简单的开始~~~ src/os/unix/Ngx_ ...
随机推荐
- JavaScript 知识点
JS基础 页面由三部分组成: html:超文本标记语言,负责页面结构 css:层叠样式表,负责页面样式 js:轻量级的脚本语言,负责页面的动效和数据交互 小总结:结构,样式和行为,三者相分离 在htm ...
- 【Unity3D技术文档翻译】第1.1篇 AssetBundle 工作流
译者前言:本章是关于从创建到加载,再到使用 AssetBundle 的整个流程的概述.阅读本章将对 AssetBundle 的工作流程有个简单而全面的了解. 本章原文所在章节:[Unity Manua ...
- JS原生Ajax&Jquery的Ajax技术&Json
1.介绍Ajax Ajax = 异步 JavaScript 和 XML Ajax是一种创建快速动态网页的技术 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意味着可以不用整个 ...
- Yii2自带的验证码背景颜色怎么调?
看了下面的这张图片你就知道啦!
- Django在form提交CSRF验证失败. 相应中断问题
CSRF验证失败. 相应中断. 1).首先,我们可以先看一下出现问题的所在的原因. Your browser is accepting cookies. The view function passe ...
- Linux sftp 安全文件传输命令
sftp 是一个交互式文件传输程式.它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性. 1.常用登陆方式: 格式:sftp <user>@<host> 通过sftp ...
- win10安装mongodb及配置 和 mongodb的基本使用(node环境)
mongodb安装 下载地址: https://www.mongodb.com/download-center 下载后,我们点击mongodb-win32-x86_64-2008plus-ssl-3. ...
- HDP2.0测试
1.测试Hbase (1)hive导入hbase
- 6.1 MSI/MSI-X Capability结构
PCIe设备可以使用MSI或者MSI-X报文向处理器提交中断请求,但是对于某个具体的PCIe设备,可能仅支持一种报文.在PCIe设备中含有两个Capability结构,一个是MSI Capabilit ...
- Android热修复(动态加载)方案汇总
整理了以下动态加载的方案,便于在项目中使用时查阅: Dexposed github (https://github.com/alibaba/dexposed) AndFix github (https ...