2010-12-01 27 views
3

Nous avons un tas de sous-domaines génériques (_foo.example.com, bar.example.com, etc.) qui, lorsqu'ils sont accédés via HTTPS, doivent rediriger vers le sous-domaine équivalent sur notre domaine sécurisé.Redirection de sous-domaines génériques vers un domaine de premier niveau différent avec nginx

Quelques exemples:

Je pense que cela peut être accompli avec nginx réécritures mais je suis pas sûr de la syntaxe. Voici ce que je tente:

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

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

Cette évidence ne fonctionnera pas parce que je ne suis pas capturer le sous-domaine entrant et l'utiliser dans la réécriture.

Répondre

3

Essayez quelque chose comme ça (non testé):

server { 
    listen 80; 
    listen 443 default ssl; 

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

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

J'aime cette solution et il travaille pour moi (fortement modifié pour mon propre but). – Pablo

1

trouvé sur 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; 
}