2019篮球世界杯投注官网Nginx的Rewrite规则与实例

作者: win10  发布:2019-08-22

Nginx的Rewrite准绳与实例

NGINX重定向

 

语法:rewriteregexreplacement[flag];

Nginx Rewrite 法规相关指令

默认值:—

相关指令有if,rewrite,set,return,break等,个中最要紧的便是rewrite.二个粗略的Nginx Rewrite准则语法如下:

使用:

rewrite ^/b/(.*).html /play.php?video=$1 break;

Serverlocation,if

1.break指令

server定义叁个站点,location定义站点目录地方

暗许值:none ;使用条件:server,location,if ;

要是钦定的正则表明式能相称U冠道I,此UXC60I将被replacement参数定义的字符串改写。

该指令的意义是成就近日的准绳集,不再管理rewrite指令。

rewrite指令按其在配置文件中冒出的次第推行。flag能够告一段落后续指令的推行。

 

比方replacement的字符串以“

2.if指令

并重临给客户端贰个重定向。

暗中同意值:none ;使用条件:server,location

可选的flag参数能够是在那之中之一:

该指令用于检查一个标准是不是切合,假诺基准符合,则试行大括号内的话语。If指令不帮忙嵌套,不援助多少个规范化&&和||管理。

last

A.变量名,错误的值包含:空字符串""恐怕其余以0初步的字符串

结束实施当前这一轮的ngx_http_rewrite_module指令集,然后找寻相配改造后UCR-VI的新location;

B.变量相比能够动用"="(表示卓殊)和"!="(表示不等于)

break

C.正则表明式格局相称能够选用"~*"和"~"符号

终止施行当前这一轮的ngx_http_rewrite_module指令集;

D."~"符号表示区分轻重缓急写字母的相称

redirect

E."~*"符号表示不区分轻重缓急写字母的相配

在replacement字符串未以“

F."!~"和"!~*"符号的法力恰恰和"~"、"~*"相反,表示不相称

permanent

G."-f"和"!-f"用来剖断文件是不是留存

回去状态码为301的万古重定向。

H."-d"和"!-d"用来判断目录是或不是存在

总体的重定向U奥德赛L将安分守己央浼左券$scheme)、server_name_in_redirect指令和port_in_redirect指令的布置举行补全

I."-e"和"!-e"用来判断文件或目录是或不是留存

例子:

J."-x"和"!-x"用来判定文件是或不是为可进行

Nginx结合php是靠fastcgi,修改nginx的陈设文件,让nginx可以调用php页面。

K.部分正则表明式能够在()内,用$1~$9来访问

2019篮球世界杯投注官网 1

 

location/{

3.return指令

roothtml;

语法:return code ;使用条件:server,location,if ;

indexindex.phpindex.htmlindex.htm;

该指令用于甘休法规的实施并回到状态码给客商端。

}

演示:如若访谈的U凯雷德L以".sh"或".bash"结尾,则赶回403状态码

1,访谈站点主目录下的别样jpg的央浼都被定向到主页面

location ~ .*.(sh|bash)?$

rewrite"^/.*.jpg$"/index.php;

{

2019篮球世界杯投注官网 2

return 403;

2019篮球世界杯投注官网 3

}

2,Rewrite"^/(.*)/(.*).bmp$"/$1/$2.jpg做客站点目录下的别的目录下的其他以.bmp结尾的图片,都要被重定向到站点目录下的同样目录下的别样以.jpg结尾的公文。

 

2019篮球世界杯投注官网 4

4.rewrite 指令

3,访谈站定主目录下的另外公文,将被重定向到其他一台web服务器上的站点主目录下的index.php目录里面。

语法:rewrite regex replacement flag

私下认可值:none ; 使用情状:server,location,if

该指令依照表明式来重定向UKugaI,大概修改字符串。指令依照安插文件中的顺序来举办。注意重写表明式只对相对路线有效。倘让你想配成对主机名,你应当选择if语句,示比如下:

Rewrite“/.*”;

if( $host ~* www.(.*) )

2019篮球世界杯投注官网 5

{

4,将会见www.abc.com/forum重定向到www.abc.com/bbs

set $host_without_www $1;

域名访问修改host文件

rewrite  ^(.*)$   permanent;

rewrite"/froum/*"/bbs;

}

2019篮球世界杯投注官网 6

 

2019篮球世界杯投注官网 7

rewrite指令的尾声一项参数为flag标识,协理flag标识有:

server{

1.last     相当于apache里面的[L]标记,表示rewrite。

...

2.break本条法则相称成功后,终止相称,不再相称后边的平整。

rewrite^(/download/.*)/media/(.*)..*$$1/mp3/$2.mp3last;

3.redirect  回来302有的时候重定向,浏览器地址会来得跳转后的U科雷傲L地址。

rewrite^(/download/.*)/audio/(.*)..*$$1/mp3/$2.ralast;

4.permanent  重回301长久重定向, 浏览器地址会来得跳转后的U福特ExplorerL地址。

return403;

 

...

应用last和break完毕U传祺I重写,浏览器地址栏不改变。何况两方有细微差异,使用alias指令必需用last标识;使用proxy_pass指令时,须要选拔break标识。Last标志在本条rewrite准绳推行完结后,会对其所在server{......}标签重新发起呼吁,而break标识则在那个准则相称成功后,终止相称。

}

 

5,达成域名跳转

诚如在跟location中(location /{...})或间接在server标签中编辑rewrite法则,推荐应用last标识;在非根location中(location /cms/{...}),则使用break。

比方访谈www.abc.com站点下的别的文件或目录---》,都定向到www.tyedus.com

 

要是UCR-VI中含有参数(/app/test.php?id=5),私下认可情状下参数会被活动叠合到替换串上,你能够通过在轮换串的最后加上?标志来消除这一主题素材。

"/*"

例如:rewrite ^/test(.*)$ permanent;

本文出自 “个人博客” 博客,请必得保留此出处

访问 会跳转到

语法:rewriteregexreplacement[flag]; 私下认可值: — 使用: Server location,if server定义二个站点,location定义站点目录地点假使钦点的正则表...

 

诸如:尽管大家将类似U奥迪Q7L /photo/123456 重定向到 /path/to/photo/12/1234/123456.png

Rewrite "/photo/([0-9]{2})([0-9]{2})([0-9]2019篮球世界杯投注官网,{2})" /path/to/photo/$1/$1$2/$1$2$3.png ;

注:假若正则表明式里面有花括号"{"或"}" ,应该接纳双引号或单引号。

 

5.Set指令

语法:set variable value ; 私下认可值:none ; 使用情状:server,location,if;

该指令用于定义一个变量,并给变量赋值。变量的值可感觉文本、变量以及文本变量的一道。

示例:set $varname "hello world";

 

6.Uninitialized_variable_warn指令

语法:uninitialized_variable_warn on|off

利用情状:http,server,location,if

该指令用于开启和关闭未起初化变量的警戒音信,暗中认可值为张开。

 

7.Nginx Rewrite能够用到的全局变量

$args ,$content_length ,$content_type ,$document_root ,$document_uri ,$host ,$http_user_agent ,$http_cookie ,$limit_rate ,$request_body_file ,$request_method ,$remote_addr ,$remote_port ,$remote_user ,$request_filename ,$request_uri ,$query_string ,$scheme ,$server_protocol ,$server_addr ,$server_name ,$server_port ,$uri .

 

Nginx的Rewrite法则编写实例

1.当会见的文件和目录不设有的时候,重定向到某些php文件

if( !-e $request_filename )

{

rewrite ^/(.*)$ index.php last;

}

 

2.索引对换 /123456/xxxx  ====>   /xxxx?id=123456

rewrite ^/(d )/(. )/  /$2?id=$1 last;

 

3.假诺顾客端选用的是IE浏览器,则重定向到/ie目录下

if( $http_user_agent  ~ MSIE)

{

rewrite ^(.*)$ /ie/$1 break;

}

 

4.禁止访谈四个目录

location ~ ^/(cron|templates)/

{

deny all;

break;

}

 

5.禁止访谈以/data起初的公文

location ~ ^/data

{

deny all;

}

 

6.禁止访问以.sh,.flv,.DVD为文件后缀名的文本

location ~ .*.(sh|flv|mp3)$

{

return 403;

}

 

7.装置有个别种类文件的浏览器缓存时间

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

}

location ~ .*.(js|css)$

{

expires 1h;

}

Nginx和Apache的Rewrite规则实例相比

1.形似大约的Nginx和Apache准则的分别非常的小,基本能够完全协作,举个例子:

Apache: RewriteRule  ^/abc/$   /web/abc.php [L] 

Nginx:  rewrite  ^/abc/$  /web/abc.php last ;

我们得以看出来只要把Apache的RewriteRule改为Nginx的rewrite,Apache的[L]改为last 即可。

借使将Apache的法规改为Nginx法则后,用命令Nginx -t 检查开掘错误,则我们得以尝尝给条件丰硕引号,譬喻:

rewrite “^/([0-9]{5}).html$”   /x.php?id=$1 last;

 

2.Apache和Nginx的Rewrite法规在U大切诺基L跳转时有细微差异:

Apache:  RewriteRule ^/html/([a-zA-Z] )/.*$  /$1/  [R=301,L]

Nginx:   rewrite ^/html/([a-zA-Z] )/.*$   premanent ;

我们得以看到在Nginx的跳转中,咱们要求增多

 

3.上边是一对Apache和Nginx法则的附和关系

a.Apache的RewriteCond对应Nginx的if

b.Apache的RewriteRule对应Nginx的rewrite

c.Apache的[R]对应Nginx的redirect

d.Apache的[P]对应Nginx的last

e.Apache的[R,L]对应Nginx的redirect

f.Apache的[P,L]对应Nginx的last

g.Apache的[PT,L]对应Nginx的last

 

举个例子:允许钦命的域名访谈本站,其余的域名一律转向www.xiaozhe.com

Apache:

RewriteCond %{HTTP_HOST} !^(.*?).aaa.com$ [NC]

RewriteCond %{HTTP_HOST} !^localhost$ 

RewriteCond %{HTTP_HOST} !^192.168.0.(.*?)$

RewriteRule ^/(.*)$ [R,L]

 

Nginx:

if( $host ~* ^(.*).aaa.com$ )

{

set $allowHost ‘1’;

}

if( $host ~* ^localhost )

{

set $allowHost ‘1’;

}

if( $host ~* ^192.168.1.(.*?)$ )

{

set $allowHost ‘1’;

}

if( $allowHost !~ ‘1’ )

{

rewrite ^/(.*)$ redirect ;

}

 

 

Nginx Rewrite 准绳相关指令 相关指令有if,rewrite,set,return,break等,个中最根本的就是rewrite.二个粗略的Nginx Rewrite法则语法...

本文由篮球世界杯投注-2019篮球世界杯投注官网发布于win10,转载请注明出处:2019篮球世界杯投注官网Nginx的Rewrite规则与实例

关键词: 篮球世

上一篇:没有了
下一篇:没有了