靜態(tài)網(wǎng)站是指所有的網(wǎng)頁都由靜態(tài)內(nèi)容構(gòu)成,包括客戶端執(zhí)行的腳本(例如JavaScript)。您可以通過靜態(tài)網(wǎng)站托管功能將您的靜態(tài)網(wǎng)站托管到OSS的存儲空間(Bucket),并使用Bucket的訪問域名訪問這個網(wǎng)站。

場景說明

例如,您需要為目標(biāo)存儲空間examplebucket開啟靜態(tài)網(wǎng)站托管,examplebucket內(nèi)的文件結(jié)構(gòu)如下所示:

examplebucket
 ├── index.html
 ├── error.html
 ├── example.txt
 └── subdir/
      └── index.html

您希望訪問子目錄subdir/時,不支持跳轉(zhuǎn)至子目錄下的index.html頁面,而是跳轉(zhuǎn)至根目錄下的index.html頁面。此外,當(dāng)訪問Bucket內(nèi)不存在的文件時,返回默認(rèn)錯誤頁面。具體步驟,請參見配置靜態(tài)網(wǎng)站托管時未開通子目錄首頁

您希望訪問子目錄subdir/時,支持直接跳轉(zhuǎn)至子目錄下的index.html頁面。此外,當(dāng)訪問Bucket內(nèi)不存在的文件時,返回默認(rèn)錯誤頁面,并通過文件404規(guī)則指定訪問不存在文件時的返回結(jié)果。具體步驟,請參見配置靜態(tài)網(wǎng)站托管時開通子目錄首頁

配置靜態(tài)網(wǎng)站托管時未開通子目錄首頁

  1. 登錄OSS管理控制臺
  2. 單擊Bucket列表,然后單擊目標(biāo)Bucket名稱。
  3. 在左側(cè)導(dǎo)航欄,選擇數(shù)據(jù)管理 > 靜態(tài)頁面
  4. 靜態(tài)頁面區(qū)域,單擊設(shè)置,按如下說明配置各項參數(shù)。
    靜態(tài)頁面
    參數(shù) 說明
    默認(rèn)首頁 默認(rèn)首頁是您通過瀏覽器訪問靜態(tài)網(wǎng)站域名時,OSS返回的網(wǎng)站首頁。此處設(shè)置為index.html
    子目錄首頁 選擇不開通,此時訪問靜態(tài)網(wǎng)站根域名或者根域名下任何一個以正斜線(/)結(jié)尾的URL都會返回根目錄默認(rèn)首頁。
    默認(rèn)404 訪問Bucket內(nèi)文件出現(xiàn)404錯誤時,OSS返回的錯誤頁面。默認(rèn)404頁僅支持根目錄下的文件。此處設(shè)置為error.html
    錯誤文檔響應(yīng)碼 您可以配置返回錯誤文檔時的HTTP響應(yīng)碼為404200
  5. 單擊保存

配置靜態(tài)網(wǎng)站托管時開通子目錄首頁

  1. 在左側(cè)導(dǎo)航欄,選擇數(shù)據(jù)管理 > 靜態(tài)頁面
  2. 靜態(tài)頁面區(qū)域,單擊設(shè)置,按如下說明配置各項參數(shù)。
    靜態(tài)頁面2
    參數(shù) 說明
    默認(rèn)首頁 默認(rèn)首頁是您通過瀏覽器訪問靜態(tài)網(wǎng)站域名時,OSS返回的網(wǎng)站首頁。此處設(shè)置為index.html
    子目錄首頁 選擇開通。開通子目錄首頁后,訪問靜態(tài)網(wǎng)站根域名時,返回根目錄默認(rèn)首頁。訪問根域名下以正斜線(/)結(jié)尾的URL時會返回對應(yīng)目錄的默認(rèn)首頁。例如,訪問示例中的https://examplebucket.oss-cn-hangzhou.aliyuncs.com/subdir/時,則返回subdir/目錄下的默認(rèn)首頁文件index.html
    文件404規(guī)則 開通子目錄首頁后,通過文件404規(guī)則決定訪問不存在的Object時的返回結(jié)果。例如,訪問https://examplebucket.oss-cn-hangzhou.aliyuncs.com/exampledir,因示例中不存在exampledir文件,則根據(jù)設(shè)置的文件404規(guī)則返回對應(yīng)信息:
    • Redirect(默認(rèn)值):檢查exampledir/index.html是否存在。
      • 如果文件存在則返回302,并將訪問請求重定向為https://examplebucket.oss-cn-hangzhou.aliyuncs.com/exampledir/index.html
      • 如果文件不存在則返回404,并繼續(xù)檢查https://examplebucket.oss-cn-hangzhou.aliyuncs.com/error.html。如果error.html頁面也不存在該文件,則返回404狀態(tài)碼。
    • NoSuckKey:直接返回404,并繼續(xù)檢查https://examplebucket.oss-cn-hangzhou.aliyuncs.com/error.html
    • Index:檢查exampledir/index.html是否存在。
      • 如果文件存在則返回200,并直接返回文件內(nèi)容。
      • 如果文件不存在,則繼續(xù)檢查https://examplebucket.oss-cn-hangzhou.aliyuncs.com/error.html
    默認(rèn)404 訪問Bucket內(nèi)文件出現(xiàn)404錯誤時,OSS返回的錯誤頁面。默認(rèn)404頁僅支持根目錄下的文件。此處設(shè)置為error.html
    錯誤文檔響應(yīng)碼 您可以配置返回錯誤文檔時的HTTP響應(yīng)碼為404200
  3. 單擊保存

創(chuàng)建并上傳默認(rèn)首頁

當(dāng)您為examplebucket配置靜態(tài)網(wǎng)站托管時指定的默認(rèn)首頁為index.html,您需要將與默認(rèn)首頁名稱相同的文件上傳至examplebucket根目錄下。由于examplebucket中包含了子目錄subdir/,則子目錄subdir/下也必須包含index.html文件。

  1. 創(chuàng)建index.html文件。index.html文件配置示例如下:
    <html>
    <head>
        <title>My Website Home Page</title>
        <meta charset="utf-8">
    </head>
    <body>  
      <p>Now hosted on OSS.</p>
    </body>
    </html>
  2. index.html文件保存至本地。
  3. 分別將index.html文件上傳至examplebucket根目錄以及子目錄subdir下。上傳文件時,您需要將文件讀寫權(quán)限設(shè)置為公共讀。
    關(guān)于上傳文件的具體操作,請參見上傳文件

創(chuàng)建并上傳默認(rèn)404

當(dāng)您為examplebucket配置靜態(tài)網(wǎng)站托管時指定的默認(rèn)404頁為error.html,您需要將與默認(rèn)404頁名稱相同的文件上傳至examplebucket根目錄下。

  1. 創(chuàng)建error.html文件。error.html文件配置示例如下:
    <html>
    <head>
        <title>Hello OSS!</title>
        <meta charset="utf-8">
    </head>
    <body>  
      <p>This is error 404 page.</p>
    </body>
    </html>
  2. error.html文件保存至本地。
  3. error.html文件上傳至examplebucket根目錄下。上傳文件時,您需要將文件讀寫權(quán)限設(shè)置為公共讀。
    關(guān)于上傳文件的具體操作,請參見上傳文件

關(guān)閉靜態(tài)網(wǎng)站托管

當(dāng)您不再需要使用默認(rèn)首頁、默認(rèn)404頁等靜態(tài)網(wǎng)站托管配置時,請按如下步驟關(guān)閉靜態(tài)網(wǎng)站托管功能:

  1. 在左側(cè)導(dǎo)航欄,選擇數(shù)據(jù)管理 > 靜態(tài)頁面
  2. 靜態(tài)頁面區(qū)域,單擊設(shè)置
  3. 清空默認(rèn)首頁和默認(rèn)404頁配置,然后單擊保存
    返回如下頁面,表示已成功關(guān)閉靜態(tài)網(wǎng)站托管功能。關(guān)閉靜態(tài)頁面