我们有一堆通配符子域(_foo.example.com,bar.example.com等),当通过HTTPS访问时,它们应重定向到安全域中的等效子域.
一些例子:
> https://foo.example.com => https://foo.secure.com
> https://foo.example.com/some/path => https://bar.secure.com/some/path
> https://bar.example.com => https://bar.secure.com
我认为可以通过nginx重写来实现,但是我不确定语法.这是我正在尝试的:
server {
listen 443;
server_name *.example.com;
rewrite ^(.*) https://*.secure.com$1 permanent;
}
这显然是行不通的,因为我没有捕获传入的子域并在重写中使用它.
解决方法:
尝试以下操作(未经测试):
server {
listen 80;
listen 443 default ssl;
server_name "~^(?<name>\w\d+)\.example\.com$";
rewrite ^(.*) https://$name.secure.com$1 permanent;
}