nginx - 如何根据 url 参数更改 Nginx 中的别名?
问题描述
我有位置:
location = /conf.js {
alias /config/conf.js;
}
我想确保如果 URL 包含 arg1 参数(例如https://test.com?arg1=4982948394)别名 = /config/conf2.js,在所有其他情况下 /config/conf.js
是否有可能做到这一点?
先感谢您
解决方案
对的,这是可能的:
map $arg_arg1 $conf {
4982948394 /config/conf2.js;
default /config/conf.js;
}
server {
...
location = /conf.js {
alias $conf;
}
...
该map
指令允许正则表达式匹配,根据arg1
您可以使用的任何非空值检查请求查询参数
map $arg_arg1 $conf {
~. /config/conf2.js;
default /config/conf.js;
}
要检查arg1
请求查询字符串中是否存在参数,可以使用以下map
块:
map $args $conf {
~(^|&)arg1(=|&|$) /config/conf2.js;
default /config/conf.js;
}
您可以在此处查看所有 nginx 内部变量的列表。
推荐阅读
- angular - 如何在 vmware-clarity、Angular6 中将 sidenav 导航链接的默认状态设置为关闭
- eclipse - eclipse.ini文件中的相对路径是否可以使-vm在eclipse下查看目录?
- python - 映射 2 个数据帧并替换目标数据帧中匹配值的标头
- java - 从rest api下载文件给了我一些垃圾值
- javascript - 如何通过另一个属性找到猫鼬模型的属性?
- python - 想要以相同的顺序和行从 git 存储库中获取具有详细信息(日期、时间、gmt、文件路径、作者)的日志
- android - 无法解析 ':app@debug/compileClasspath' 的依赖关系:无法解析 com.google.firebase:firebase-messaging:17.1.0
- javascript - 使用 Javascript 替换文本而不丢失内部标签
- django - 将我的 Django 项目上传到 github 是否可取?
- c# - 在双数组中获取给定日期的第一个日期索引