nginx 配置, url 跳转问题

2019-07-02 20:27:19 +08:00
 Hopetree

有个简单的 nginx 配置,目前运行没有问题,当前是这样的

server {
    # 端口和域名
    listen 80;
    server_name localhost;

    # static 和 media 的地址
    location /static/ {
        root /opt/izone;
    }

    location /media/ {
        root /opt/izone;
    }

    # web 服务使用 80 端口,并且添加别名跟本地域名保持一致
    location / {
        proxy_pass http://web:8000;
    }

    # 其他配置
    client_max_body_size 1m;
    client_header_buffer_size 128k;
    client_body_buffer_size 1m;
    proxy_buffer_size 32k;
    proxy_buffers 64 32k;
    proxy_busy_buffers_size 1m;
    proxy_temp_file_write_size 512k;
}

现在我想实现的是当 url 是 /media/avatar/default.png (仅仅是这个 url,其他 media 下的不要跳转)的时候跳转到 /static/blog/img/default.png ,其他的 /media/还是保持原请求,我做了尝试,在现有的配置中添加如下配置

location /media/avatar/default.png {
        alias /static/blog/img/default.png;
    }

但是发现根本不起作用(我尝试了把这个新添加的配置放到原有的 /media/前面或者后面都不行,对 nginx 真心不熟悉,求个大佬指点一下

3248 次点击
所在节点    NGINX
3 条回复
taolu
2019-07-02 21:08:13 +08:00
location = /media/avatar/default.png
=的优先级最高
arrow8899
2019-07-02 21:20:43 +08:00
location /media/avatar/default.png {
rewrite ^/.*$ /static/blog/img/default.png break;
}
或者
location /media/avatar/default.png {
alias /opt/izone/blog/img/default.png
}
liwb2
2019-07-10 11:38:08 +08:00
location = /media/avatar/default.png {
rewrite ^ /static/blog/img/default.png last;
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/579417

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX