rewrite是通过正则表达式来改变uri的功能,如何重定向和选择配置文件,是由变量决定的
如果这个指令在server层级,那么它将在请求的location被确定之前就被执行。如果在那个location中,也设定了rewrite指令,那么指令仍旧会执行。如果location内部的rewrite指令执行后,uri改变了,那么新的uri的location会被重新计算,这个循环执行10次,nginx就会返回错误500.
首先要说一下主要的几个正则表达式
\ |
将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 |
^ |
匹配输入字符串的开始位置。 |
$ |
匹配输入字符串的结束位置。 |
* |
匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。 |
+ |
匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 |
? |
匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。 |
. |
匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。 |
作用:
1.一些动态的URL伪装成静态html,便于搜索引擎抓取。
2.一些旧的链接要进行更新兼容。
指令:
if rewrite set return break;
标识:
last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302 ,浏览器会显示跳转后的URL地址
permanent – 返回永久重定向的HTTP状态301 ,浏览器会显示跳转后的URL地址
实例:
将旧的php请求不同的转发
- server{
- listen 8011;
- server_name gg.xxx.com 127.0.0.1;
- #匹配带有这些字符的URL请求
- location ~ /gg/client/client_gg.php {
- #转发到go.do,参数会自动附加
- rewrite ^(.*)$ http:
- }
- #下面的是广告,跳转到www主站
- location ~ /gg/gg_go\.php {
- #直接跳转www主站,不会附加参数
- return http:
- }
- }
分享到:
相关推荐
nginx笔记nginx笔记nginx笔记nginx笔记nginx笔记nginx笔记nginx笔记nginx笔记
nginx笔记+资料
nginx笔记+资料 nginx优化实战 服务器集群及优化笔记 优化实验原始数据 location的解析过程
关于nginx的一些资料,nginx 的安装,启动,Nginx的信号控制,Nginx配置等具体文档
nginx笔记
Nginx笔记
Nginx教程
nginx.docnginx.docnginx.doc
Nginx 源码分析笔记 自己的源码分析笔记,未完。
nginx学习笔记.zip
里面有关于nginx所有的配置具体的介绍,其中有nginx怎样配置负载均衡,图片服务器,资源压缩,黑白名单限制,websocket反向代理,rewrite重写规则,服务器缓存设置,ssl证书配置,keepalive部署nginx集群,openResty...
全网最详细的nginx笔记
Nginx学习笔记 Nginx 是一个流行的开源 Web 服务器软件,能够处理高并发请求,常用于搭建高性能的 Web 服务器。本文将对 Nginx 的安装、配置、日志管理等方面进行详细的介绍。 一、Nginx 的安装 Nginx 的安装可以...
nginx作为linux服务器的应用之一,有着举足轻重的地位,并且nginx的市场份额也在逐步猛增,学好Nginx是技术人员必备技能,包括开发人员。...Nginx笔记;nginx优化实战;服务器集群及优化笔记.doc;优化实验原始数据.txt
nginx集群,分布式服务架构,特点:热部署,可高并发连接,低内存消耗,处理响应快,可靠性高等
黑马23期Linux+Nginx 的笔记,介绍如何搭建Nginx环境(Linux下)
Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例...
非常详细的Nginx的课堂笔记,让你回味无穷, Nginx ...Nginx 是由俄罗斯人 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev 在建立的项目时,使用基于 BSD 许可。
nginx课堂笔记01