regex - 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/
解决方案
我包含了所有文件,例如:
include /etc/nginx/sites-enabled/*;
所以我在另一个配置中有一个重复的地图:
map $http_referer $root {
... some other regex matching /var/www/example.com/...;
}
所以我的第一张地图覆盖了第二张地图,因此它永远不会进入问题中定义的地图
推荐阅读
- c# - 不能使用实例引用访问 C# 静态成员
- javascript - 图像在初始加载时高度较小
- java - 如何在线程结束时处理我当前的 JFrame?
- c# - 如何获取空列表的值类型?
- python - 有没有办法在不安装 Qt 的情况下安装 jupyter?
- javascript - enctype 不能通过模式弹出窗口与 beginform 中的 id 一起使用
- javascript - 编写元素 ID 的不同方式?
- python - 在字典中获取函数值的一些问题
- swift - Xcode 10 存档应用程序无法在安装了 Xcode 9 或更早版本的 Mac 上运行:DYLD,[0x4] 符号丢失?
- python - 编写 pygame.keys[0] 时,它不采用 keys[0] 的值