nginx填坑之路(2)nginx 实现路径重写 rewrite$1

参考文档:
nginx 配置 rewrite$1
nginx path路径地址重写
Nginx实现路径重写rewrite指令

Nginx提供了rewrite指令,用于对地址进行重写,语法规则:

rewrite "用来匹配路径的正则" 重写后的路径 [指令];
rewrite ^/job/(.*)|1 break

问题场景再现:

说明:页面连接直接请求js是正常的,页面刷新请求的js路径就变了,两次请求js区别在于页面刷新请求的js路径多了一个当前目录:job 、platform
(这个问题是前端路由问题,不过nginx可以进行地址重写)

连接请求网址: http://172.20.162.29/job/static/js/SM.js
刷新请求网址: http://172.20.162.29/job/static/js/static/js/SM.js

连接请求网址: http://172.20.162.29/platform/static/js/SM.js
刷新请求网址: http://172.20.162.29/platform/static/js/static/js/SM.js

nginx进行路径重写 rewrite$1

说明:存在多个路径时需要添加多条重写记录,临时解决可以,后期优化由前端处理


 server {
    listen       80;
    server_name  localhost;

    location /platform {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        rewrite ^/platform/(.*)$ $1 break; 
        proxy_pass http://172.20.162.29:80/$1;
     }
    location /job {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        rewrite ^/job/(.*)$ $1 break; 
        proxy_pass http://172.20.162.29:80/$1;
     }

     location / {
        root   /html/;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
         }
posted @   muzlei  阅读(478)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示