2012-08-14 35 views
29

如何爲域名設置index.html https://www.example.com/ - 將用戶引導至根目錄中的index.html。如何在Nginx中將index.html設置爲根文件?

我已經嘗試不同的東西,如:

server { 
    # some configs 

    location =/{ 
      index index.html; 
      fastcgi_index index.html; 
    } 
or 
    location/{ 
      index index.html; 
      fastcgi_index index.html; 
    } 

} 

沒有什麼幫助了我。

還有一些其他配置與位置關鍵字,但我也評論他們。

其他 「位置」 CONFIGS的server {子句中:

location ~ .*(css|htc|js|bmp|jp?g|gif|ico|cur|png|swf|htm?|html)$ { 
     access_log off; 
     root $www_root; 
} 

location ~ \.php$ 
{ 
     include       /etc/nginx/fastcgi_params; 
     index       index.html; 
     fastcgi_index     index.html; 
     fastcgi_param SCRIPT_FILENAME $www_root$fastcgi_script_name; 
     fastcgi_param QUERY_STRING  $query_string; 
     fastcgi_param PATH_INFO   $fastcgi_path_info; 
     fastcgi_pass     127.0.0.1:9000; 
     # Директива определяет что ответы FastCGI-сервера с кодом больше или равные 400 
     # перенаправлять на обработку nginx'у с помощью директивы error_page 
     fastcgi_intercept_errors  on; 
     break; 
} 

location ~ /\.ht { 
    deny all; 
} 

所有這些了評論和未加註釋,但沒有任何幫助。

PS版本是在/etc/nginx/sites-enabled/domainname.com文件中製作的。

回答

15

答案是根目錄放置的位置指令:

root /srv/www/ducklington.org/public_html; 
+0

我'index.html'完美的作品。根本不重要,它只是文件系統上文件的名稱。 – 2015-10-30 15:17:29

30

在你的位置塊,你可以這樣做:

location/{ 
    try_files $uri $uri/index.html; 
} 

它會告訴ngingx尋找與文件首先給出確切的名字,如果沒有找到這樣的文件,它會嘗試uri/index.html。因此,如果對https://www.example.com/的請求發生,它會先查找確切的文件匹配,然後找不到會檢查index.html的文件。

+1

看起來像是導致無限循環,如果該文件夾不包含index.html – 2014-04-17 07:36:53

+2

我不知道我會認爲這是一個最佳做法或任何東西。如果你找不到你要找的文件或目錄,它應該返回一個404,而不是索引。 – 2014-09-16 16:17:17

+0

它只會返回索引,如果它是一個目錄名,否則你會尋找 \ index.html這將不會在那裏,因此將返回404 – cobaco 2014-09-18 09:38:58

4

根據文檔 按指定順序檢查文件的存在並使用首先找到要求處理的文件;該處理在當前上下文中執行。文件路徑是根據根和別名指令從文件參數構建的。可以通過在名稱末尾指定斜線來檢查目錄的存在,例如, 「$ URI /」。如果找不到任何文件,則將內部重定向到最後一個參數中指定的uri。重要

一個內部重定向到uri中指定的最後一個參數是 。

因此在上一個參數中,如果前兩個參數返回false,則應該添加頁面或代碼。

location/{ 
    try_files $uri $uri/index.html index.html; 
} 
+0

雖然這對404有效嗎? – 2016-01-06 18:59:33

+0

它是在try_files之後檢查文件 - 如果找不到任何文件,則將內部重定向到最後一個參數中指定的uri。如果你想查看404代碼頁,以防萬一找不到所有文件,你需要指定它作爲最後一個參數。 location/{ try_files $ uri $ uri/index.html $ uri.html = 404; } – Nokors 2016-01-08 09:31:09

相關問題