Nginx Rewrite规则初探(转)
Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。
规则语法:
- if ($http_user_agent ~MSIE){
- rewrite ^(.*)$/msie/$1 break;
- }
- if (!-f$request_filename){
- rewrite ^/img/(.*)$/site/$host/images/$1 last;
- }
rewrite 语法规则:
变量名:
变量名可以使用"="或"!="运算符
~ 符号表示区分大小写字母匹配
~* 符号表示不区分大小写字母匹配
!~ 和 !~ 与~ !~ 相反
-f 和 !-f 用来判断文件是否存在
-d 和 !-d 用来判断目录是否存在
-e 和 !-e 用来判断文件或目录是否存在
-x 和 !-x 用来判断文件是否可以执行
也支持$1到$9位置参数
示例:,如果访问的URL以.sh .bash 结尾,返回状态码403
- location ~ .*\.(sh|bash)?$
- {
- return 403;
- }
- rewrite指令的最后一项参数为flag标记,支持的flag标记主要有以下几种:
- last :相当于Apache里德(L)标记,表示完成rewrite;
- break;本条规则匹配完成后,终止匹配,不再匹配后面的规则
- redirect:返回302临时重定向,浏览器地址会显示跳转后的URL地址
- permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
- last和break用来实现URL重写,浏览器地址栏URL地址不变
- location /b {
- autoindex on;
- alias /usr/local/nginx/html/redhat;
- rewrite ^/b/?$ /bbs permanent;
- }
- location /bbs {
- autoindex on;
- alias /usr/local/nginx/html/bbs;
- }
1,将原来要访问/b的目录重写为/bbs
核心语句:
- rewrite ^/b/?$ /bbs permannet;
2,根据不同的浏览器将得到不同的结果。
- if ($http_user_agent ~ Firefox) {
- rewrite ^(.*)$ /firefox/$1 break;
- }
- if ($http_user_agent ~ MSIE) {
- rewrite ^(.*)$ /msie/$1 break;
- }
- if ($http_user_agent ~ Chrome) {
- rewrite ^(.*)$ /chrome/$1 break;
- }
- location ~*\.(gif|jpg|png|swf|flv)${
- valid_referers none blocked www.cheng.com*.test.com;
- if ($invalid_referer)
- rewrite ^/(.*) http://www.cheng.com/error.html
- }
- server {
- listen 80;
- server_name cheng.example.com;
- write ^(.*)$ http://zhang.example.com/$1 permanent;
- location / {
- root html;
- index index.html index.htm;
- }
http://blog.csdn.net/xifeijian/article/details/20955253
Nginx Rewrite规则初探(转)的更多相关文章
- Nginx Rewrite规则记录
Rewrite 是一种服务器的重写脉冲技术,它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术.它还可以实现限制特定IP访问网站的功能.很多情况下,某个 IP 的访问很容易造成 CPU ...
- Nginx rewrite 规则 与 proxy_pass 实现
Nginx rewrite 规则 与 proxy_pass 实现 -------------------------------------------------------------- ...
- Nginx Rewrite规则详解
Rewrite规则含义就是某个URL重写成特定的URL,从某种意义上说为了美观或者对搜索引擎友好,提高收录量及排名等. Rewrite规则的最后一项参数为flag标记,支持的flag标记主要有以下几种 ...
- Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)
一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...
- [转】 nginx rewrite规则
http://www.cnblogs.com/cgli/archive/2011/05/16/2047920.html 最近在VPS上尝试配置安装一个网站,VPS安装了LNMP(Linux+Nginx ...
- [转帖]Nginx rewrite 规则 与 proxy_pass 实现
Nginx rewrite 规则 与 proxy_pass 实现 https://www.cnblogs.com/jicki/p/5546916.html Nginx rewrite 规则 与 pr ...
- Nginx Rewrite规则
location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配 ...
- codeigniter nginx rewrite规则配置【转】
转自:http://www.nginx.cn/1134.html nginx如何配置才能支持codeigniter ? 1. codeigniter的url美化去掉index.php 1 2 3 ...
- 【Web】Nginx Rewrite规则
Rewrite介绍 Rewrite主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Ngi ...
随机推荐
- 具体解释http 协议
HTTP协议的主要特点可概括例如以下: 1.支持客户/server模式. 2.简单高速:客户向server请求服务时,仅仅需传送请求方法和路径.请求方法经常使用的有GET.HEAD.POST.每种方法 ...
- Oracle Enterprise Manager 11g 输入用户名和口令 点击“登录”按键后没反应,也不报错,是什么原因?
在tnsnames.ora文件中检查设置好像没什么问题,用sqlplus也可以正常操作orcl 问题找到了,其实可简单,https://localhost:1158/em/console/logon/ ...
- Spring+Maven配置等问题
1. 在POM中使用 统一/指定/特定 的Spring版本号 <properties> <spring.version>4.1.6.RELEASE</spring.ver ...
- SQL Server配置管理WMI问题
今天在打开数据库的时候,连接不上.一看错误就知道肯定是SQL Server的服务没开启,所以自然而然的去SQL Server配置管理中去打开,但是打开配置管理器的时候出现了下面的错误: ...
- Java "==和equals区别"
本文转载至中软国际电子政务部Jeff Chi总结,转载请说明出处. 概述: A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同:当用于引用类型的时候,是比较对象是否相 ...
- Javascript中的位运算符和技巧
ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数).在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢? 有符号整数使用 3 ...
- 高性能Mysql主从架构的复制原理及配置详解(转)
温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台 ...
- 权限控制框架Spring Security 和Shiro 的总结
关于权限控制,一开始感觉比较难,后来先是接触了Spring Security 学起来也比较吃力,再是学习了Shiro,感觉简单很多. 总体来说这些框架,主要做了两个事情 Authentication: ...
- Java Date 和 Calendar
Java 语言的Date(日期),Calendar(日历),DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分.日期是商业逻辑计算一个关键的部分,所有的开发者都应该能够计算 ...
- CERC 2013 Magical GCD
题目大意如下:给定一个序列,每个序列有值xi,现给定t个数列,对于每个长n的数列,求一段[l,r]使 [r-l+1]*gcd(l,r)最大,gcd(l,r)指的是该连续区间的最大公约数. 不难想到n^ ...