Nginx详解十八:Nginx深度学习篇之Rewrite规则

 

Rewrite规则可以实现对url的重写,以及重定向

作用场景:

1、URL访问跳转,支持开发设计,如页面跳转,兼容性支持,展示效果等

2、SEO优化

3、维护:后台维护、流量转发等

4、安全

 

配置语法

配置语法:rewrite regex replacement [flag];
默认状态:-
配置方法:server、location、if
如:rewrite ^(.*)$ /pages/maintain.html break;

 

常用的正则表达式

 

在linux下,可以用pcretest来测试

 

flag:

 

server {
listen 80 default_server;
server_name jeson.t.imooc.io;

access_log /var/log/nginx/log/host.access.log main;

root /opt/app/code;
location ~ ^/break {
rewrite ^/break /test/ break;
}

location ~ ^/last {
rewrite ^/last /test/ last;
}

location /test/ {
default_type application/json;
return 200 '{"status":"success"}';
}
}

检查配置语法并重载

nginx -tc /etc/nginx/nginx.conf 
nginx -s reload -c /etc/nginx/nginx.conf

 

 

 

server {
listen 80 default_server;
server_name jeson.t.imooc.io;

access_log /var/log/nginx/log/host.access.log main;

root /opt/app/code;
location ~ ^/break {
rewrite ^/break /test/ break;
}

location ~ ^/last {
rewrite ^/last /test/ last;
#rewrite ^/last /test/ redirect;
}

location ~ ^/imooc {
rewrite ^/imooc http://www.imooc.com/ permanent;
#rewrite ^/imooc http://www.imooc.com/ redirect;
}

location /test/ {
default_type application/json;
return 200 '{"status":"success"}';
}
}

检查并重启

 

 

Rewrite规则优先级

执行server块的rewrite > 执行location匹配 > 执行选定的location中的rewrite

 

Rewrite规则书写

RewriteCode %{HTTP_HOST} nginx.org

RewriteRule (.*) 

 

posted @ 2019-03-13 23:41  向前走。  阅读(726)  评论(0编辑  收藏  举报