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

Posted zhongyehai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 (.*) 

 

以上是关于Nginx详解十八:Nginx深度学习篇之Rewrite规则的主要内容,如果未能解决你的问题,请参考以下文章

Nginx详解二十一:Nginx深度学习篇之配置苹果要求的openssl后台HTTPS服务

深度学习理论篇之 ( 十八) -- 注意力机制之SENet

Nginx详解七:Nginx基础篇之Nginx官方模块

Nginx详解六:Nginx基础篇之Nginx日志

Nginx详解九:Nginx基础篇之Nginx的访问控制

Nginx详解五:Nginx基础篇之HTTP请求