Перенаправление субдоменов подстановочных знаков в другой домен верхнего уровня с помощью nginx - PullRequest
3 голосов
/ 01 декабря 2010

У нас есть несколько поддоменных подстановочных знаков (_foo.example.com, bar.example.com и т. Д.), Которые при обращении по HTTPS должны перенаправлять на эквивалентный поддомен в нашем защищенном домене.

Некоторые примеры:

Я думаю, что это может быть достигнуто с помощью перезаписей nginx, но я не уверен насчет синтаксиса.Вот что я пытаюсь сделать:

server {
    listen        443;
    server_name   *.example.com;

    rewrite       ^(.*)   https://*.secure.com$1 permanent;
}

Это явно не сработает, потому что я не перехватываю входящий поддомен и не использую его при перезаписи.

Ответы [ 2 ]

3 голосов
/ 18 апреля 2011

Попробуйте что-то вроде этого (не проверено):

server {
    listen 80;
    listen 443 default ssl;

    server_name "~^(?<name>\w\d+)\.example\.com$";

    rewrite ^(.*) https://$name.secure.com$1 permanent;
}
0 голосов
/ 22 октября 2011

Нашел это на 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;
}
...