nginx将一个路径下的多种url分别映射

背景

nginx如何将/static/下的images或script或css路径,分别映射到/data下的images、scripts或styles。

分析

可以在nginx的配置文件中添加以下配置,来实现url以/static/开头时,根据不同的子路径映射到不同的本地文件路径:

location /static/ {

root /data/;

if ($request_uri ~* "^/static/(images|scripts|styles)/") {

set subdir 1;

rewrite ^/static/(images|scripts|styles)/(.*) /subdir/$2 break;

}

}

其中,/static/是url路径,/data/是本地文件路径,root指令指定了url路径对应的本地文件路径。if语句判断url路径是否以/static/images/、/static/scripts/或/static/styles/开头,如果是,则将子路径保存到变量subdir中。rewrite指令将url路径中的子路径替换成变量subdir中保存的值,从而实现了不同子路径对应不同的本地文件路径。

需要注意的是,if语句会影响nginx的性能,因此建议使用map指令或者多个location指令来替代if语句。另外,建议在配置文件中添加访问控制,防止/static/目录下的文件被未经授权的访问者获取。

总结

来源: nginx将一个路径下的多种url分别映射-七秒鱼笔记

相关推荐
Maynor99641 分钟前
我用 Codex 给自己的网站上线了一个智能体客服:从 Dify 到服务器部署,全程实战复盘
运维·服务器
java_cj1 小时前
深入kubectl create源码:从YAML到Pod的完整链路拆解
运维·云原生·容器·kubernetes
深圳恒讯2 小时前
越南服务器BGP多线和单线有什么区别?
运维·服务器
志栋智能2 小时前
超自动化运维如何提升安全合规水平?
运维·安全·自动化
A_humble_scholar3 小时前
Linux(九) 进程管理完全指南:从入门到实战
linux·运维·chrome
江华森3 小时前
Linux 操作命令完全指南
linux·运维
源图客4 小时前
【AI向量数据库】Weaviate介绍与部署
运维·docker·容器
用什么都重名4 小时前
Git分支合并与远程服务器同步实战:保留关键配置文件
运维·服务器·git
C++ 老炮儿的技术栈4 小时前
Ubuntu root账号自动登陆
linux·运维·服务器·c语言·c++·ubuntu·visual studio
2301_780789664 小时前
零信任架构中,身份感知防火墙(IAFW)的部署要点与最佳实践
linux·运维·服务器·人工智能·tcp/ip·架构