nginx重写模块
参考: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重写模块的更多相关文章
- mac下Nginx+lua模块编译安装
Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...
- nginx -- handler模块(100%)
handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ...
- [转帖]Nginx rewrite模块深入浅出详解
Nginx rewrite模块深入浅出详解 https://www.cnblogs.com/beyang/p/7832460.html rewrite模块(ngx_http_rewrite_modul ...
- Nginx rewrite模块深入浅出详解
rewrite模块(ngx_http_rewrite_module) nginx通过ngx_http_rewrite_module模块支持url重写.支持if条件判断,但不支持else.另外该模块需要 ...
- Nginx 功能模块
一.Nginx 核心功能模块 Nginx 核心功能模块负责 Nginx 的全局应用,主要对应主配置文件的 Main 区块和 Events 区块,这里有很多 Nginx 必须的全局参数配置. Nginx ...
- Nginx RTMP 模块 nginx-rtmp-module 指令详解
译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解.指令Corertmp语法:rtmp { ... }上下文:根描述:保存所 ...
- (转)nginx 常用模块整理
原文:http://blog.51cto.com/arm2012/1977090 1. 性能相关配置 worker_processes number | auto: worker进程的数量:通常应该为 ...
- Nginx软件模块说明
Nginx软件模块说明 Nginx常用模块 注:以下只是列举Nginx常用模块,需要详细了解更多模块可以登录Nginx官方网站查看 功能模块 模块说明 ngx_http_core_module 包含一 ...
- nginx http模块开发入门
导语 本文对nginx http模块开发需要掌握的一些关键点进行了提炼,同时以开发一个简单的日志模块进行讲解,让nginx的初学者也能看完之后做到心里有谱.本文只是一个用作入门的概述. 目录 背景 主 ...
随机推荐
- TCP连接建立与终止,及状态转换
TCP连接建立 三路握手 三路握手发生在客户端发起connect请求到服务端accept返回中,在三路握手发生前,服务端必须准备好接受外来连接,这通常通过服务端调用 (socket.bind.list ...
- 关于数组类型的json解析方法
遇到了非常奇葩的数组类型的json,一时解析不出来,用jsonObject会直接报错. Json数据如: [{"id":"1000142","name ...
- 程序员笔记|Spring IoC、面向切面编程、事务管理等Spring基本概念详解
一.Spring IoC 1.1 重要概念 1)控制反转(Inversion of control) 控制反转是一种通过描述(在java中通过xml或者注解)并通过第三方去产生或获取特定对象的方式. ...
- 图像处理之基础---ffmpeg 中的图像缩放
http://blog.csdn.net/bweaglegao/article/details/8540860 http://www.cnblogs.com/acloud/archive/2011/1 ...
- linux内核模块依赖图
Module Size Used by btrfs 880032 0 raid6_pq 97812 ...
- Html.Partial
老革命永远都在遇上各种似是而非的老问题. 这次,是这个Html.Partial,分部页. Html.Partial与Html.Action有啥区别呢?区别就是,Html.Partial只有一个视图,而 ...
- VUE 之 JS指令
1.v-text的用法: 2.v-html 3.v-for 4.v-if , v-else if ,v-else v-if 每次生成都只有一个标签,即符合条件的标签. 5.v-show v-show ...
- camus gobblin
####Camus is being phased out and replaced by Gobblin. For those using or interested in Camus, we su ...
- De Moivre–Laplace theorem 掷硬币
De Moivre–Laplace theorem - Wikipedia https://en.wikipedia.org/wiki/De_Moivre%E2%80%93Laplace_theore ...
- positive 相对其正常位置,那什么是正常位置: 请问调试,请问浏览器
[问题代码 <!DOCTYPE html><html><head> <title></title> <meta charset=&qu ...