2013-07-15 83 views
1

我是nginx新手。請幫我設置以下配置: site.com的根文件夾是/var/www(root /var/www)。 但是當有人打開http://site.com時,我想從/var/www/home加載內容。 如果有人試圖http://site.com/anything,我想從/var/www/anything加載內容。nginx位置文件根目錄外

我嘗試以下

root /var/www; 
location =/{ 
root /var/www/home 
} 

,但沒有奏效。

而且,我試圖

location =/{ 
root /var/www/home 
} 

location/{ 
root /var/www 
} 

,這再次沒有工作,

請幫

+0

不起作用,你的意思是你得到404或什麼?並且是網站的php或rails或python,或者只是簡單的html? –

+0

@Mohammad 它的htmt。當嘗試第一個選項 'root/var/www; location =/{ root/var/www/home }' 它總是匹配/ var/www 在第二個位置/匹配總是。我認爲site.com將匹配位置= /但它不會 – user2584292

+0

您是否在服務器範圍內定義了索引? 'index index.html;' –

回答

2

試試這個:

location ~ ^/$ { 
    root /var/www/home; 
} 
location ~ ^(?!/$) { 
    root /var/www; 
} 

或本:

location/{ 
    root /var/www; 
    rewrite ^/$ /home/ break; 
} 
+0

嘗試了第一個選項,但它總是取第一個位置。這是site.com和site.com/anything匹配 'location_ ^/$ { root/var/www/home;}' 第二個選項有效,它從/ var/www/home /但它無法加載位於/ var/wwww/home的css,js和img文件夾。它試圖從/ var/www中讀取這些文件夾。我通過刪除'rewrite ^/$/home break'的結尾斜槓修改了重寫。它完美的工作,但網址重定向到site.com/home'。我們可以做到這一點,而無需更改URL或不重寫 – user2584292

+0

稍作改動:'重寫^/$ /home/index.html中斷;'。 – Melvyn

+0

嘗試但沒有運氣index.html加載沒有CSS和JS。 – user2584292