regex - 如何从此 url 中提取整数以进行 nginx 重写?
问题描述
我有一个需要 nginx 解释和重写的 url。
我对 nginx 配置没问题,但我一点也不擅长使用正则表达式。
典型的 URL 如下所示:
/open/M-100_L-200_N-300_I-400.jpg
它需要被重写成这样:
/open.php?M=100&L=200&N=300&I=400
我怀疑它会像......
location /open/ {
rewrite ^/open/M-([0-9]+)_L-([0-9]+)_N-([0-9]+)_I-([0-9]+) /open.php?M=$1&L=$2&N=$3&I=$4
}
请注意,这些值将始终是不同长度/大小的整数。
这仅匹配整个文件名,而不是其中的单个值。
再说一次,我的问题是我不擅长使用正则表达式,真的应该花一些时间来理解它。
解决方案
直接放在server
上下文中并\d
用于数字更容易:
server {
...
rewrite "^/open/M-(\d+)_L-(\d+)_N-(\d)+_I-(\d)+.jpg$" /open.php?M=$1&L=$2&N=$3&I=$4 last;
...
}
\d
= 个位数+
= 多于一,\d+
对于可变长度整数也是如此()
用于捕获,以便匹配可用,例如$1
在重写中
推荐阅读
- authentication - 如何将 UWP 应用的身份验证从 OneDrive SDK 迁移到 Graph
- javascript - JavaScript:检测层次图中的循环
- python - 如何在 R/Python 中从 GPS 数据集中检测停止点
- r - R:使用 eval() 的 dbplyr
- excel - 宏中的计数
- python - 我想从我的最后一行之后检测圆圈并指定它的位置
- javascript - 如何在Vue3.0中通过双击打开或关闭自动播放?
- pascal - 致命:语法错误,; 预期但发现标识符 TUNJANGAN
- mysql - React JS Mysql依赖下拉实现在第二个下拉列表中显示整个表
- c# - 使用 JsonConverter 在 C# 中自定义 JSON 反序列化