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 (.*)