設定 Amplify 應用程式的重新導向和重寫 - AWS Amplify 託管

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amplify 應用程式的重新導向和重寫

重新導向可讓 Web 伺服器將導覽從一個伺服器重新路由URL到另一個伺服器。使用重新導向的常見原因包括自訂 的外觀URL、避免連結中斷、在不變更其地址的情況下移動應用程式或網站的託管位置,以及URL將請求變更為 Web 應用程式所需的表單。

了解 Amplify 支援的重新導向

Amplify 支援主控台中的下列重新導向類型。

永久重新導向 (301)

301 重新導向預期用於網址目的地的持續變更。原始地址的搜尋引擎排名歷史記錄會套用到新目的地地址。重新導向會在用戶端上進行,因此瀏覽器導覽列會在重新導向後顯示目的地地址。

使用 301 重新導向的常見原因包括:

  • 為了避免頁面的地址變更時造成連結中斷。

  • 為了避免當使用者在地址中提供了可預測的錯字時造成連結中斷。

暫時重新導向 (302)

302 重新導向預期用於網址目的地的暫時變更。原始地址的搜尋引擎排名歷史記錄不適用於新的目的地地址。重新導向會在用戶端上進行,因此瀏覽器導覽列會在重新導向後顯示目的地地址。

使用 302 重新導向的常見原因包括:

  • 為了在對原始地址進行修復時提供繞道目的地。

  • 提供使用者介面 A/B 比較的測試頁面。

    注意

    如果您的應用程式傳回非預期的 302 回應,則錯誤可能是因為您對應用程式的重新導向和自訂標頭組態所做的變更所造成。若要解決此問題,請確認您的自訂標頭是否有效,然後為應用程式重新啟用預設的 404 重寫規則。

重寫 (200)

200 重新導向 (重寫) 是為了就好像是從原始地址提供一般,顯示來自目的地地址的內容。搜尋引擎排名歷史記錄會繼續套用到原始地址。重新導向會在伺服器端上進行,因此瀏覽器導覽列會在重新導向後顯示原始地址。使用 200 重新導向的常見原因包括:

  • 為了將整個網站重新導向到新的託管位置,而不變更網站的地址。

  • 將所有流量重新導向至單一頁面 Web 應用程式 (SPA) 至其 index.html 頁面,以供用戶端路由器函數處理。

找不到 (404)

當請求指向不存在的地址時,會發生 404 重新導向。會顯示 404 目的地頁面,而不是請求的頁面。404 重新導向發生的常見原因包括:

  • 避免使用者輸入錯誤的 時連結訊息中斷URL。

  • 為了將 Web 應用程式不存在頁面的請求指向其 index.html 頁面,以由用戶端路由器功能處理。

了解重新導向的順序

重新導向會從清單頂端向下套用。請確定您的排序具有預期的效果。例如,下列重新導向順序會造成將 /docs/ 下指定路徑的所有請求重新導向到 /documents/ 下的相同路徑,/docs/specific-filename.html 除外,它會重新導向至 /documents/different-filename.html

/docs/specific-filename.html /documents/different-filename.html 301 /docs/<*> /documents/<*>

以下重新導向順序會忽略 specific-filename.htmldifferent-filename.html 的重新導向:

/docs/<*> /documents/<*> /docs/specific-filename.html /documents/different-filename.html 301

了解 Amplify 如何轉送查詢參數

您可以使用查詢參數來對URL相符項目進行更多控制。Amplify 會將所有查詢參數轉送到 301 和 302 重新導向的目的地路徑,但以下情況除外:

  • 如果原始地址包含設為特定值的查詢字串,Amplify 不會轉送查詢參數。在此情況下,重新導向僅適用於URL具有指定查詢值的目的地請求。

  • 如果相符規則的目的地地址具有查詢參數,則不會轉送查詢參數。例如,如果重新導向的目的地地址為 https://example-target.com?q=someParam,則不會傳遞查詢參數。