nginx正则表达式

$request_filename 当前请求的文件的路径名,由root或alias和URI request组合而成

nginx的rewrite指令中可以通过设置该条rewrite的flag来对该规则进行说明。一般可以设置的flag有:last,break,redirect,permanent四种。

 

redirect说明,这条规则是一个临时的跳转,并且此时如果观察http请求的话,http的响应状态码为302.

permanent说明,这条规则是一个永久性的跳转,并且此时,http的响应状态码为301.

 

那么什么是永久性跳转,什么是临时跳转,这有什么作用呢?下面我们举例说明:

如果有一个url,/a。

如果配置成

rewrite "/a" "http://test.html" redirect;

则说明这个跳转是一个临时跳转,此时如果有网络爬虫爬这个链接时,是不会更新自己的url数据库的。

但是如果配置成permanet,则爬虫会更新自己的url数据库,把/a更新为http://test.html

这也就是临时跳转和永久跳转的区别。

二、Location语法 语法:location [=|~|~*|^~] /uri/ { … }
注:
1、~   为区分大小写匹配
2、~* 为不区分大小写匹配
3、!~和!~*分别为区分大小写不匹配 及不区分大小写 不匹配
示例一:
location  / { }
匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。
示例二:
location =/ {}
仅仅匹配/
示例三:
location ~* \.(gif|jpg|jpeg)$ {
rewrite \.(gif|jpg)$ /logo.png;

注:不区分大小写匹配任何以gif,jpg,jpeg结尾的文件
三、ReWrite语法
last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301
1、下面是可以用来判断的表达式:
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行

 

posted @ 2015-01-06 08:04  agang_19  阅读(1039)  评论(0编辑  收藏  举报