参考:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

1 语法

Syntax:	if (condition) { ... }
Default: —
Context: server, location
Syntax:	return code [text];
return code URL;
return URL;
Default: —
Context: server, location, if
Syntax:	rewrite regex replacement [flag];
Default: —
Context: server, location, if
Syntax:	break;
Default: —
Context: server, location, if
Syntax:	set $variable value;
Default: —
Context: server, location, if

  

2 测试 

2.1 精确匹配/return code

if ($remote_addr = 10.224.32.114){
return 403;
}
#访问ip精确匹配,则403

  

2.2 正则匹配/rewrite

if ($http_user_agent ~* chrome){
rewrite ^/(.*)$ /chrome.html break;
}
#如果UA不区分大小写匹配到chrome,则uri重写到/chrome.html,然后跳出
#如果不跳出,client下面就会访问/chrome.html,然后被循环重写,会500报错

  

2.3 是否存在/fastcgi_para

if (!-e $document_root$fastcgi_script_name){
rewrite ^/(.*)$ /404.html break;
}
#请求的路径+文件名不存在,重写到404.html

  

2.4 设定变量

if ($http_user_agent ~* chrome){
set $client 1;
} if ($http_user_agent ~* firefox){
set $client 2;
} if ($client = 1){
rewrite ^/(.*) /chrome.html break;
} if ($client = 2){
rewrite ^/(.*) /firefox.html break;
}
#不同的UA,给变量设定不同的值,然后根据不同的值,给出不同的重定向

  

3 反向引用

location /test {
rewrite ^/test/(.*)$ /new_test/$1 break;
}
#$1就是()里的内容
#比如/test/xx.html,就会把xx.html传递给$1,就是重写到/new_test/xx.html
#相当于换个目录

  

nginx重写模块的更多相关文章

  1. mac下Nginx+lua模块编译安装

    Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...

  2. nginx -- handler模块(100%)

    handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ...

  3. [转帖]Nginx rewrite模块深入浅出详解

    Nginx rewrite模块深入浅出详解 https://www.cnblogs.com/beyang/p/7832460.html rewrite模块(ngx_http_rewrite_modul ...

  4. Nginx rewrite模块深入浅出详解

    rewrite模块(ngx_http_rewrite_module) nginx通过ngx_http_rewrite_module模块支持url重写.支持if条件判断,但不支持else.另外该模块需要 ...

  5. Nginx 功能模块

    一.Nginx 核心功能模块 Nginx 核心功能模块负责 Nginx 的全局应用,主要对应主配置文件的 Main 区块和 Events 区块,这里有很多 Nginx 必须的全局参数配置. Nginx ...

  6. Nginx RTMP 模块 nginx-rtmp-module 指令详解

    译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解.指令Corertmp语法:rtmp { ... }上下文:根描述:保存所 ...

  7. (转)nginx 常用模块整理

    原文:http://blog.51cto.com/arm2012/1977090 1. 性能相关配置 worker_processes number | auto: worker进程的数量:通常应该为 ...

  8. Nginx软件模块说明

    Nginx软件模块说明 Nginx常用模块 注:以下只是列举Nginx常用模块,需要详细了解更多模块可以登录Nginx官方网站查看 功能模块 模块说明 ngx_http_core_module 包含一 ...

  9. nginx http模块开发入门

    导语 本文对nginx http模块开发需要掌握的一些关键点进行了提炼,同时以开发一个简单的日志模块进行讲解,让nginx的初学者也能看完之后做到心里有谱.本文只是一个用作入门的概述. 目录 背景 主 ...

随机推荐

  1. 聊聊高并发(三十二)实现一个基于链表的无锁Set集合

    Set表示一种没有反复元素的集合类,在JDK里面有HashSet的实现,底层是基于HashMap来实现的.这里实现一个简化版本号的Set,有下面约束: 1. 基于链表实现.链表节点依照对象的hashC ...

  2. HDU 6155 Subsequence Count 线段树维护矩阵

    Subsequence Count Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 256000/256000 K (Java/Oth ...

  3. 理解yarn平台,理解万岁,肤浅理解也万岁~

    从Hadoop1到Hadoop2很大程度上解放了Jobtracker资源调度的问题,这就得多亏了yarn平台了.我知道的,除了我们的大豆瓣用的是Mesos,咱们国家可以说应该是99.99%都使用的是y ...

  4. Lambda 闭包 匿名 函数 类

    深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法) - _Luc_ - 博客园 https://www.cnblogs.com/figure9/p/java-8 ...

  5. HTML——使用表格进行页面布局

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. .Net之路(十四)com组件、OLEDB导入EXCEL

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/chenfanglincfl/article/details/30546777 .NET com组件 ...

  7. 20170218-取值Domain

    1.通过视图DD07V, 例子:取SD 凭证类别的DOMAIN(VBTYP)DATA: LT_DD07V TYPE TABLE OF DD07V.SELECT * INTO T_DD07V FROM ...

  8. JS中prototype,js原型扩展

    作者:轩脉刃(yjf512)出处:(http://www.cnblogs.com/yjf512/)版权声明:本文的版权归作者与博客园共有.欢迎转载阅读,转载时须注明本文的详细链接. 原文 http:/ ...

  9. linux网络配置及IP绑定

    在学习时,参考了这篇文章:http://blog.csdn.net/collection4u/article/details/14127671:在这篇文章中作者讲述了VMware中虚机的三种网络模式: ...

  10. Getting Started with the Intel Media SDK

    By Gael Hofemeier on March 19, 2015 Follow Gael on Twitter: @GaelHof Media SDK Developer’s Guide Med ...