gpt4 book ai didi

regex - 在 nginx 中使用正则表达式重定向子域

转载 作者:行者123 更新时间:2023-12-03 22:48:32 24 4
gpt4 key购买 nike

nginx 文档说 server_name directive支持正则表达式。我一直在用头撞墙,试图让一个微不足道的正则表达式工作。

我要 http://subdomain.mydomain.com重定向到 http://mydomain.com/subdomain

这是我的代码。

server {
server_name "~^subdomain\.mydomain\.com$";
rewrite ^ http://mydomain.com/subdomain;
}

此外,可能值得注意。在 nginx 配置文件的更深处有一条规则:
server {
server_name *.mydomain.com
...
}

我究竟做错了什么?

更新:

有人建议我不要为此使用正则表达式......以提供更清晰的信息:琐碎的正则表达式只是为了排除故障。真正的正则表达式看起来更像是......
server {
server_name "~^.*(cvg|cincinnati)\.fakeairport(app)?\.(org|com)$";
rewrite ^ http://fakeairport.com/cincinnati;
}

server {
server_name "~^.*(lex|lexington)\.fakeairport(app)?\.(org|com)$";
rewrite ^ http://fakeairport.com/lexington;
}

所以最好使用正则表达式。

最佳答案

回答一个老问题来帮助别人

使用 nginx 1.1.19 您可以执行以下操作:

server {
server_name ~^(?<subdomain>\w+)\.domainA\.com$;

location / {
rewrite ^ https://$subdomain.domainB.com$request_uri permanent;
}
}

domainA.com 之前的子域匹配并存储在变量 $subdomain 中,然后可以在重写中使用。
这将 xxx.domainA.com 之类的 url 重写为 xxx.domainB.com,只有一个服务器指令。

关于regex - 在 nginx 中使用正则表达式重定向子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9578628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com