语法 Syntax:rewrite regex replacement [flag];
Default: --
Context:server,location,if
## 其中 flag 有:
## last:停止rewrite检查,并根据rewrite匹配的规则重新发起一个请求
## break:停止rewrite检查,相对last,break并不会重新发起一个请求,只是跳过当前的rewrite阶段,并执行本请求后续的执## 行阶段…
## rediret:返回302临时重定向,地址栏会显示跳转后的地址
## permanent:返回301永久重定向,地址栏会显示跳转后的地址
## 例:所有请求转发到/pages/maintain.html
# rewrite ^(.*)$ /pages/maintain.html break; ## 例:分别访问/break /last /test/ 查看区别
server {
listen 80;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/test_proxy.access.log main;
root /opt/app/code;
location ~ ^/break {
rewrite ^/break /test/ break;
}
location ~ ^/last {
rewrite ^/last /test/ last;
}
location ~ ^/test_r_p {
#rewrite ^/test_r_p redirect;
#rewrite ^/test_r_p permanent;
}
location /test/ {
default_type application/json;
return 200 '{"status":"success"}';
}
}
## 使用场景:浏览器兼容性
server{
location / {
if($http_user_agent ~* Chrome){
rewrite ^/nginx redirect;
}
index index.html;
}
}