首页 > 解决方案 > 使用正则表达式时,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/;
}

标签: regexnginx

解决方案


alias正则表达式 location中需要捕获文件的完整路径。有关详细信息,请参阅文档

例如:

location ~ "^/mapdata/([\d]{4}/.*\.txt)$" {
    alias /data/map/coordinates/$1;
}

推荐阅读