我们有一堆通配符子域(_foo.example.com,bar.example.com等),当通过HTTPS访问时,应该redirect到我们安全域上的等效子域。
一些例子:
我认为这可以用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; }
在http://forum.slicehost.com/comments.php?DiscussionID=730找到这个
# redirects arbitrary subdomain (some.random.sub.example.com) to (some.random.sub.example.org) if ($host ~* "^([^.]+(\.[^.]+)*)\.example.com$"){ set $subd $1; rewrite ^(.*)$ http://$subd.example.org$1 permanent; break; } # Simply redirects example.com to example.org if ($host ~* "^example.com$"){ rewrite ^(.*)$ http://example.org$1 permanent; break; }