nginx rewrite模块
return
从0.8.42版本开始, return 语句可以指定重定向 url (状态码可以为如下几种 301,302,303,307),
也可以为其他状态码指定响应的文本内容,并且重定向的url和响应的文本可以包含变量。
# return code [text]; 返回 ok 给客户端
location = /ok {
return 200 "ok";
}
# return code URL; 临时重定向到 百度
location = /redirect {
return 302 http://www.baidu.com;
}
# return URL; 和上面一样 默认也是临时重定向
location = /redirect {
return http://www.baidu.com;
}
rewrite
rewrite regex replacement [flag];
regex 来匹配请求的url,如果匹配成功,则使用replacement更改URI。可以使用flag标志来终止指令的进一步处理
- last,停止处理当前的ngx_http_rewrite_module的指令集,并开始搜索与更改后的URI相匹配的location;
- break,停止处理当前的ngx_http_rewrite_module指令集,就像上面说的break指令一样;
- redirect,返回302临时重定向。
- permanent,返回301永久重定向。
小栗子
location = /favicon.ico {
rewrite (.*) /static/favicon.ico;
}