Nginx Rewrite规则

Rewrite 主要的功能就是实现url的重写。Nginx的Rewrite的规则采用pcre perl 兼容正则表达式的语法进行规则匹配。

所以需要Rewrite,编译必须安装pcre库

Nginx Rewrite 规则的相关指令

if(!-f $request_filename){# 访问的不是文件

rewrite ^/(.*)\.html  /$1.php break;

}

break指令

表示完成该规则。不再处理rewrite指令。

if 指令  

判断指令。

return 指令

返回状态码

return 404; 返回一个404

rewrite 指令

rewrite 用到的变量

$args 参数

$content_length 响应头长度

$content_type 类型

$document_root 根目录

$host 主机名

$http_user_agent 用户的浏览器agent

$http_cookie cookie

$request_body 请求头

$remote_addr 页面地址

$request_method 请求方式

$request_filename 请求的文件名

$server_protocol 协议

$server_addr server地址

$server_port 服务器端口

常见的rewrite 例子

1.禁止目录访问

location ~ ^/templates{

 deny all;

break;

}

2.设置静态文件的缓存时间

location ~ .*\.(gif|jpg|png|bmp|swf){

expires 30d;#缓存30天

}

3.仿盗链

location ~ .*\.(gif|jpg|png|bmp|swf){

valid_referers none blocked www.xxx.com

if($invalid_referer){

 return 403;

}

}

 

posted @ 2014-10-21 14:58  闲云-野鹤  阅读(363)  评论(0编辑  收藏  举报