首页 > 解决方案 > nginx 正则表达式模式不匹配

问题描述

map $http_referer $root {
    ~^https://example.com/(?<project>[a-zA-Z0-9-]+)/(?<slug>[a-zA-Z0-9-]+)(/.*)?    /var/www/example.com/$project/$slug;
}

如果我用这样的引用者调用它,为什么这个正则表达式不匹配:

https://example.com/myproject-abc-123/myslug123-asd/

标签: regexnginx

解决方案


我包含了所有文件,例如:

include /etc/nginx/sites-enabled/*;

所以我在另一个配置中有一个重复的地图:

map $http_referer $root {
    ... some other regex matching   /var/www/example.com/...;
}

所以我的第一张地图覆盖了第二张地图,因此它永远不会进入问题中定义的地图


推荐阅读