regex - 多个 Nginx 别名到一个位置

标签 regex nginx alias

我想为一个位置的两个别名创建一个位置规则。

这是用于一个位置的规则:

location ~ ^/images/(.*)$ { alias /var/www2/images/$1; }

我想做的是在位置定义两个别名。例如,
我可以访问http://domain.com/styles/file.csshttp://domain.com/css/file.css
它会转到一个别名,即/var/www2/styles/

我试过这样的事情,但它对我不起作用。
location ~ ^/(styles|css)(.*)$ { alias /var/www2/styles/$1; }

但再次,我不太了解正则表达式。

最佳答案

尝试:

location ~ ^/(?:styles|css)/(.*)$ { alias /var/www2/styles/$1; }

或者
location ~ ^/(styles|css)/(.*)$ { alias /var/www2/styles/$2; }
$1指的是第一个捕获组 (...) .当您添加另一个组时,它改为引用该组。您可以使用非捕获组 (?:...)相反,或引用第二个捕获组 $2 .

关于regex - 多个 Nginx 别名到一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9458986/

相关文章:

java - 如何从字符串中删除多个特殊字符,而不使用任何内置函数,例如下面的 jdk 1.4 的replaceAll()

javascript - 从 URL 正则表达式和 javascript 获取查询字符串

如果 gsub 中的模式匹配,则仅返回值

nginx - docker nginx 容器没有收到来自外部的请求,连接被拒绝

nginx - 使用 ConfigMap 添加 header 到 NGINX Ingress 不起作用

powershell - 使用 doskey 宏在 PowerShell 中设置别名

java - 重复正则表达式

nginx - Dokku:从应用程序监听多个端口

linux - 如何使用 bash 别名作为命令行参数

sql-server - 如何在多个 SELECT 输出中标记结果表