尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

nginx rewrite 用法,用rewrite去除URL中的特定参数

nginx rewrite 用法,用rewrite去除URL中的特定参数 Nginx rewrite 用法用 rewrite 去除 URL 中的特定参数日常服务中经常会用 Nginx 做一层代理转发把 Nginx 当做前置机。比如以下配置server { # 对外暴露 80 端口 listen 80; server_name 192.168.10.231; # 后端 API 地址暴露为http://192.168.10.231/apis location /apis { proxy_pass http://127.0.0.1:8000/; proxy_pass_request_headers on; # 重写 URL 去除 /apis rewrite ^/apis/(.*)$ /$1 break; } }这里的 rewrite 就是为了去除 URL 中的 /apis实际的后端 API 中是没有这个参数的但是为了在 Nginx 转发请求时进行区分前端需要加上这个参数。比如前端的请求地址是http://192.168.10.231/apis/user那么实际上经过 Nginx 转发后请求的地址是http://127.0.0.1:8000/userrewrite ^/apis/(.*)$ /$1 break路径重写(1) ^/apis/(.*)$匹配路径的正则表达式用了分组语法就是 (.*)把 /apis/ 以后的所有部分当做第 1 组 (2) /$1重写的目标路径这里用 $1 引用前面正则表达式匹配到的分组组编号从 1 开始也就是 /apis/ 后面的部分即 /apis/ 后面的所有内容。这样新的路径就是除去 /apis/ 以外的所有就达到了去除 /apis 前缀的目的。break指令常用的有 2 个分别是last、break(1) last重写路径结束后将得到的路径重新进行一次路径匹配 (2) break重写路径结束后不再重新匹配路径。
返回列表