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;
}
}