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的初学者也能看完之后做到心里有谱.本文只是一个用作入门的概述. 目录 背景 主 ...
随机推荐
- openwrt 编译 gmediarender
output_gstreamer.o: In function `my_bus_callback': output_gstreamer.c:(.text+0xf68): undefined refer ...
- appium server参数
转自: http://m.blog.csdn.net/blog/kittyboy0001/40893979 appium Appium是一个开源的,适用于原生或混合移动应用应用( hybrid mob ...
- atitit.eclipse有多少api  扩展点,以及扩展点的设计
atitit.eclipse有多少api 扩展点,以及扩展点的设计 不赞成使用的.作废的以及内部的扩展点 [扩展]页显示了几个你不应该在你的插件中使用的扩展点.在附表C.1的[描写叙述]栏中.我们使 ...
- windows下在eclipse上远程连接hadoop集群调试mapreduce错误记录
第一次跑mapreduce,记录遇到的几个问题,hadoop集群是CDH版本的,但我windows本地的jar包是直接用hadoop2.6.0的版本,并没有特意找CDH版本的 1.Exception ...
- Gym - 101164C - Castle KMP
题目链接:传送门 题解: 利用KMP的fail失配数组,快速找到当前后缀与前缀的公共前缀点 #include<bits/stdc++.h> using namespace std; #pr ...
- javascript常用事件及方法
1.获取鼠标坐标,考虑滚动条拖动 var e = event || window.event; var scrollX = document.documentElement.scrollLeft || ...
- Cluster Mode Overview
https://spark.apache.org/docs/latest/cluster-overview.html
- 【POJ 1159】Palindrome
[POJ 1159]Palindrome 近期各种题各种奇葩思路已经司空见惯了...又新出个滚动数组= = 该题另一点须要知道 最少须要补充的字母数 = 原序列S的长度 - S和S'的最长公共子串长度 ...
- 总结 <stdlib.h>头文件 在算法中可能会用到的一些函数
头文件<stdlib.>具有一定的总结性. 它定义了类型.宏和各种函数,这些函数用于:内存管理.排序和查找.整形运算.字符串到数字的转换.伪随机数序列.与环境的接口.把多字节字符串和字符转 ...
- 3种方法判断手机浏览器跳转WAP手机网站
随着移动设备的普及,企业的网络宣传已经不能局限在PC端,而需要同时在移动端有所建树.对于公司网站来说,以前都是做的PC端的,当然手机等移动端也可以访问,但是用户体验肯定不如完全适合的手机端来的方便.我 ...