Nginx rewrite

Nginx rewrite 实现 URL 地址重写,即域名重定向,在安装 nginx 的时候需要安装 PCRE 来支持 rewrite 功能。

语法:rewrite  regex  replacement  [flag]    //表示如果匹配到正则regex,就跳转到replacement,rewrite是固定关键字,flag是标记

正则:

\ :用于转义字符,如 \n 表示匹配换行 、\$ 表示匹配 $
^ :匹配起始位置
$ :匹配结束位置
* :匹配前面的字符零次或多次,如 ab* 可以匹配 a 或 abbb
+ :匹配前面的字符一次或多次,如 ab+ 可以匹配 ab 或 abbb
? :匹配前面的字符零次或一次,如 ab? 可以匹配 a 或 ab
() :匹配括号内的模式,并可以在后面获取对应的匹配

flag 标记:

last :重定向之后继续向下匹配新的 location URI 规则,且浏览器地址栏不变
break :重定向之后不再匹配后面的任何规则,且浏览器地址栏不变
redirect :返回 302 临时重定向,浏览器地址栏会显示跳转后的 URI 地址
permanent :返回 301 永久重定向,浏览器地址栏会显示跳转后的 URI 地址

配置实例:

server {
        listen       80;
        server_name  www.aaa.com www.bbb.com;                 if {$host != ‘www.bbb.com‘}               {           rewrite ^/(.*)$ http://www.aaa.com/$1 permanent;  //表示当用户访问www.bbb.com/下的任意内容时跳转到www.aaa.com/下的任意内容
        }        location / {
            root   html/www;
            index  index.html index.htm;
        }

说明:

rewrite 是固定关键字
^/(.*) 表示匹配所有
http://www.aaa.com/ 是跳转的域名
$1 是前面正则表达式括号里的内容
permanent 表示永久 301 重定向标记,即跳转到后面的 http://www.aaa.com/$1 地址上

时间: 04-13

Nginx rewrite的相关文章

Nginx rewrite 中break与last指令的区别

PS:原创文章,如需转载,请注明出处,谢谢! 本文地址:http://flyer0126.iteye.com/blog/2257670 nginx rewrite指令语法:rewrite regex replacement [flag];默认值:无作用域:server,location,if如果一个URI匹配指定的正则表达式regex,URI就按照replacement重写.rewrite按配置文件中出现的顺序执行.flags标志可以停止/继续处理.如果replacement以"http://&

nginx rewrite正则子组最多匹配到$9

nginx rewrite正则匹配()匹配子组最多匹配到$9,就是从$0到$9 当需要匹配更多子组时,可通过变量来实现 if ($uri ~ ^/forum-15/sortid-74/(.*?)(lastpost|dateline)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$){    set $orderby $2;    set $mdate $3;    set $workhours $4;    set $pricerange $5;    se

nginx rewrite标签配置以及用户认证配置

一.nginx  rewrite标签 rewrite 实现URL的改写主要是实现伪静态 1.  rewrite指令语法 指令语法:rewrite regex replacement[flag] 默认值:none 应用位置:server,location,if rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement部分内容,结尾是flag标记,下面是一个简单的URL Rewrite跳转 Rewrite ^/(.*)http://www.eti

Nginx Rewrite正则表达式案例

前两天简单整理了下Nginx的URL Rewrite基本指令,今天谈谈Nginx Rewrite的location正则表达式. 1.Nginx Rewrite 基本标记(flags) last 相当于Apache里的[L]标记,表示完成rewrite break 本条规则匹配完成之后,终止匹配,不再匹配后面的规则. redirect 返回302临时重定向 地址栏会显示跳转后的地址 permanent 返回301永久重定向 地址栏会显示跳转后的地址 2.正则表达式: 1)变量名,错误的值包括:空字

Nginx Rewrite规则初探(转)

Nginx  rewrite(nginx url地址重写)Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库. 通过Rewrite规则,可以实现规范的URL.根据变量来做URL转向及选择配置. if        指令规则语法: [plain] view plain copy if ($http_user_agent ~MSIE){

nginx——rewrite模块

1.什么是Nginx的Rewrite规则? Rewrite主要的功能就是实现URL的重写,Nginx的Rewrite规则采用PCRE(Perl Compatible Regular Expressions)Perl兼容正则表达式的语法进行规则匹配,如果 您需要Nginx的Rewrite功能,在编译Nginx之前,须要编译安装PCRE库. 通过Rewrite规则,可以实现规范的URL,根据变量来做URL转向及选择配置. (1)一些使用MVC框架的程序只有一个入口,可以通过Rewrite来实现. (

nginx rewrite php的CI(CodeIgniter)框架

一. 了解nginx rewrite: 正则表达式匹配,其中: * ~ 为区分大小写匹配    * ~* 为不区分大小写匹配    * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件    * -d和!-d用来判断是否存在目录    * -e和!-e用来判断是否存在文件或目录    * -x和!-x用来判断文件是否可执行 flag标记有: * last 相当于Apache里的[L]标记,表示完成rewrite    * bre

nginx rewrite重写与防盗链配置

nginx rewrite重写规则与防盗链配置方法 时间:2016-02-04 15:16:58来源:网络 导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标记的几种形式,盗链时返回403错误,允许的域名直接跟在第二行的域名后面. nginx rewrite重写规则与防盗链配置方法 nginx rewite 规则,官方文档:http://wiki.nginx.org/NginxHttpRewriteModule nginx rewrite规则格式:rew

nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题

Nginx重定向的参数问题 在给某网站写rewrite重定向规则时,碰到了这个关于重定向的参数处理问题.默认的情况下,Nginx在进行rewrite后都会自动添加上旧地址中的参数部分,而这对于重定向到的新地址来说可能是多余.虽然这也不会对重定向的页面显示结果造成多少影响,但当你注意到新地址中包含有多余的"?xxx=xxx"时,心里总还是会觉得不爽.而且可能影响到网站的搜索优化SEO.那么该如何来处理这部分的内容呢?看了下面两个简单的例子你就会明白了. 例如:把http://exampl