您的位置:首页 > 运维架构 > Nginx

nginx---rewrite

2017-08-16 15:27 68 查看
  nginx 提供的 rewrite功能使用nginx提供的全局变量或者自定义变量,结合正则表达式对url进行重写和重定向 eg: 
location / {
# 重写规则信息
error_log logs/rewrite.log notice;
# 注意这里要用‘’单引号引起来,避免{}
rewrite '^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$' /data?file=$3.$4;
# 注意不能在上面这条规则后面加上“last”参数,否则下面的set指令不会执行
set $image_file $3;
set $image_type $4;
}
 location /data {# 指定针对图片的日志格式,来分析图片类型和大小access_log logs/images.log mian;root /data/images;# 应用前面定义的变量。判断首先文件在不在,不在再判断目录在不在,如果还不在就跳转到最后一个url里try_files /$arg_file /image404.html;}
对于[code]/images/ef/uh7b3/test.png 的请求根据 ,根据这个规则,
rewrite '^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$' /data?file=$3.$4;  其中 $3 对应着test $4 对于着 png 
整理之后就会变成
/data?file=test.png  根据 匹配规则会匹配到 location /data 然后看 /data/images/test.png 是否存在,存在则返回,不存在返回404

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: