nginx - nginx 静态文件与别名和子路径混淆
问题描述
我想这样设置路径:
location /board/1 {
alias /home/front/;
break;
}
location /board/2 {
alias /home/front/;
break;
}
location /board/{ANY_NUMBER 3..} {
alias /home/front/;
break;
}
所以我这样写:
location ^~ /board/ {
alias /home/front/;
break;
}
然后我去/board/1
nginx访问/home/front/1
我想访问/home/front
当我这样设置时:
location /board/1 {
alias /home/front/;
break;
}
nginx访问/home/front
成功
有人可以解释发生了什么。
解决方案
通过使用alias
指令,nginx 基本上将位置路径的一部分(在本例中为/board/1
or )替换为指令 ( )/board
指定的路径。因此,如果您在位置路径中使用数字,它将被替换,但如果它不在位置路径中,它将被保留。alias
/home/front/
您可能想改用正则表达式位置:
location ~* ^/board/[0-9]+/ {
alias /home/front/;
}
推荐阅读
- javascript - JavaScript 第二个操作数返回未定义
- c# - 如何在未来日期通过 6 次参赛作品
- mysql - 如何从 Datagrip 中的 SELECT 语句生成 CREATE TABLE 语句?
- javascript - 隐藏特定
标签
- prolog - 序言中没有数学内置谓词的除法和提醒
- google-cloud-platform - 如何通过bigquery删除cloudsql mysql记录。联合查询给出错误“无法从 MySQL 服务器获取查询模式”
- python - 套接字不会通过 LAN 发送数据
- graphics - 我在使用 Vulkan Ray-Tracing 使多个网格在同一个 blas/tlas 上看起来正确时遇到了一些问题
- android - 如何在 GridLayoutManager 中设置卡片之间的垂直距离
- javascript - React 导入的函数返回未定义