2010-12-01 136 views
3

我們有一堆通配符子域名(_foo.example.com,bar.example.com等),當通過HTTPS訪問時應重定向到等效子域我們的安全域。使用nginx將通配符子域重定向到不同的頂級域名

一些例子:

我認爲這是可以與nginx的重寫來實現,但我不確定語法。這是我正在嘗試:

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

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

這顯然不會工作,因爲我沒有捕獲傳入的子域,並在重寫中使用它。

回答

3

嘗試這樣的事情(未經測試):

server { 
    listen 80; 
    listen 443 default ssl; 

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

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

我喜歡這個解決方案,它的工作對我來說(重大的修改,爲我自己的目的)。 – Pablo 2012-12-03 15:51:42

1

發現這對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; 
} 
相關問題