regex - 使用正则表达式时,nginx位置块不指向位置目录
问题描述
当我不使用正则表达式时,我有一个可以工作的位置块。
location ^~ /mapdata/ {
alias /data/map/coordinates/;
}
当我访问http://localhost/mapdata/2002/g.txt
时,我正在从文件中获取数据。
当我更改位置并使用正则表达式时。我无法读取文件,位置块是正确的。但是 url 在末尾添加了一个额外的斜杠,http://localhost/mapdata/2002/g.txt
更改为http://localhost/mapdata/2002/g.txt/
location ~ "^/mapdata/([\d]{4})/.*.txt$" {
alias /data/map/coordinates/;
}
解决方案
alias
在正则表达式 location
中需要捕获文件的完整路径。有关详细信息,请参阅文档。
例如:
location ~ "^/mapdata/([\d]{4}/.*\.txt)$" {
alias /data/map/coordinates/$1;
}
推荐阅读
- javascript - 230:45未捕获的类型错误:
- google-apps-script - 多级文件夹结构
- c++ - Qt 程序运行但弹出窗口不显示任何内容
- tensorflow - 在 Keras 的“TimeDistributed(Dense())”层中使用正则化器.l1_l2 时出错
- javascript - 检查变量名是否与字符串相同
- r - st_distance - 如何可视化大型空间数据集中不同变量之间的距离
- javascript - 单击 Python Selenium 中的标签复选框以接受条款和条件
- postgresql - 错误:通过代码优先更新数据库时 EF“关系“X”的约束“FK_X_Y_”z 不存在”
- arrays - 函数返回局部变量的地址 [-Wreturn-local-addr] sprintf
- javascript - 从 JS 调用 get 方法并返回字符串