标签:img red pcr 单实例 表示 dir cat 后端 error
Rewite 规则作用
作用场景:
注:nginx官方文档:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
配置语法:
简单实例
rewrite ^(.*)$ /pages/maintain.html break;
解释说明:
常用的正则表达式
在linux下,可以用pcretest来测试
小示例
rewrite index\.php$ /pages/maintain.html break; if ($http_user_agent ~ MSIE) { rewrite ^(.*)$ /msie/$1 break; }
解释说明
(.*) 会把所有参数的内容提取,传到/msie/下
last 停止rewrite检测【如果没有匹配到,会继续向下匹配】
break 停止rewrite检测【如果没有匹配到,则不再向下匹配,直接返回结果404】
redirect 返回302临时重定向,地址栏会显示跳转后的地址
permanent 返回301永久重定向,地址栏会显示跳转后的地址
last与break的区别案例
test_rewrite1.conf
server { listen 80 default_server; server_name www.zhangbiao.com; 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"}‘; } }
可以在终端使用 curl -vL 可以看到请求的全过程
curl -vL www.zhangbiao.com/last/
访问
http://www.zhangbiao.com/test/
访问
http://www.zhangbiao.com/last/
访问
http://www.zhangbiao.com/break/
可以发现访问 last 的时候新建立了一个请求 /test/ ,而访问/break/ 请求的时候 会去 /opt/app/code 下找相应的资源,没找到所以报错
test_rewrite1.conf
server { listen 80 default_server; server_name www.zhangbiao.com; access_log /var/log/nginx/log/host.access.log main; root /opt/app/code; location ~ ^/imooc { rewrite ^/imooc http://www.imooc.com/ permanent; #rewrite ^/imooc http://www.imooc.com/ redirect; } }
redirect 表示临时的重定向 ,只要后端服务是开者的。每次访问 /imoc 都会重定向到 http://www.imooc.com
permanent 表示永久重定向,第一次访问成功后,把后端服务关闭后,访问/imoc 仍然会重定向到 http://www.imooc.com
test_rewrite.conf
server { listen 80; server_name www.zhangbiao.com; root /opt/app/code; location / { rewrite ^/course-(\d+)-(\d+)-(\d+)\.html$ /course/$1/$2/course_$3.html break; if ($http_user_agent ~* Chrome) { rewrite ^/nginx http://coding.imooc.com/class/121.html redirect; } if (!-f $request_filename) { rewrite ^/(.*)$ http://www.baidu.com/$1 redirect; } index index.html index.htm; } error_page 500 502 503 504 404 /50x.html; }
访问在 /opt/app/code/course/11/22 下存在的资源文件
http://www.zhangbiao.com/course-11-22-33.html
访问在 /opt/app/code/course/11/22 下不存在的资源文件
http://www.zhangbiao.com/course-11-22-5
rewrite优先级规则
标签:img red pcr 单实例 表示 dir cat 后端 error
原文地址:https://www.cnblogs.com/crazymagic/p/11034300.html