2016-12-24 128 views
0

我有以下URL結構:Nginx的:子域重定向到子文件夾

domain.com/folder1/folder2/folder3/file.xy 

文件夾1總是存在和接踵而來的是完全靈活的,不同的。例如還可以有:

domain.com/folder1/file.xy 

所以基本上它是

domain.com/folder1/* 

我想現在實現的是,我能夠打開子域:

folder1.domain.com/* 

與任何文件夾/文件和nginx會自動知道該子域等於第一個子文件夾,以便具有該子域的請求將等於

domain.com/folder1/* 

我怎麼能用nginx實現這個?

感謝您的幫助!

編輯:只是爲了澄清一點:「folder1」可以是任何東西。所以基本上任何子域都等於第一個子文件夾。

+0

您必須定義不同的根目錄下的每個子域。 –

+0

請參閱[本示例](http://nginx.org/en/docs/http/server_names.html#regex_names)使用正則表達式'server_name'來設置'root'。 –

回答

0

你可以給一個嘗試Regular expressions names

您的服務器塊將看起來像

server { 
    listen  80; 
    server_name "~^(?<folder>.+)\.domain\.com$" ; 
    location/{ 
     root /srv/http/$folder; 
    } 
}