

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

# 設定自訂標頭
<a name="setting-custom-headers"></a>

有兩種方式可以指定 Amplify 應用程式的自訂 HTTP 標頭。您可以在 Amplify 主控台中指定標頭，也可以透過下載和編輯應用程式`customHttp.yml`檔案並將其儲存在專案的根目錄中來指定標頭。

**設定應用程式的自訂標頭，並將其儲存在主控台中**

1. 登入 AWS 管理主控台 並開啟 [Amplify 主控台](https://console.aws.amazon.com/amplify/)。

1. 選擇要為其設定自訂標頭的應用程式。

1. 在導覽窗格中，選擇**託管**，然後選擇**自訂標頭**。

1. 在**自訂標頭**頁面上，選擇**編輯**。

1. 在**編輯自訂標頭**視窗中，使用自訂標頭 [YAML 格式輸入自訂標頭](custom-header-YAML-format.md)的資訊。

   1. 針對 `pattern`，輸入要比對的模式。

   1. 針對 `key`，輸入自訂標頭的名稱。

   1. 針對 `value`，輸入自訂標頭的值。

1. 選擇**儲存**。

1. 重新部署應用程式以套用新的自訂標頭。
   + 對於 CI/CD 應用程式，導覽至要部署的分支，然後選擇**重新部署此版本**。您也可以從 Git 儲存庫執行新的組建。
   + 對於手動部署應用程式，請在 Amplify 主控台中再次部署應用程式。

**設定應用程式的自訂標頭，並將其儲存在儲存庫的根目錄中**

1. 登入 AWS 管理主控台 並開啟 [Amplify 主控台](https://console.aws.amazon.com/amplify/)。

1. 選擇要為其設定自訂標頭的應用程式。

1. 在導覽窗格中，選擇**託管**，然後選擇**自訂標頭**。

1. 在**自訂標頭**頁面上，選擇**下載 YML**。

1. 在您選擇的程式碼編輯器中開啟下載`customHttp.yml`的檔案，並使用自訂標頭 [YAML 格式輸入自訂標頭](custom-header-YAML-format.md)的資訊。

   1. 針對 `pattern`，輸入要比對的模式。

   1. 針對 `key`，輸入自訂標頭的名稱。

   1. 針對 `value`，輸入自訂標頭的值。

1. 將編輯`customHttp.yml`的檔案儲存在專案的根目錄中。如果您使用的是單儲存庫，請將`customHttp.yml`檔案儲存在儲存庫的根目錄中。

1. 重新部署應用程式以套用新的自訂標頭。
   + 針對 CI/CD 應用程式，請從包含新`customHttp.yml`檔案的 Git 儲存庫執行新組建。
   + 對於手動部署應用程式，請在 Amplify 主控台中再次部署應用程式，並將新`customHttp.yml`檔案包含您上傳的成品。

**注意**  
在`customHttp.yml`檔案中設定並在應用程式的根目錄中部署的自訂標頭會覆寫 Amplify 主控台自訂標頭區段中定義的**自訂標頭**。

## 安全性自訂標頭範例
<a name="example-security-headers"></a>

自訂安全標頭可強制執行 HTTPS、防止 XSS 攻擊，以及保護您的瀏覽器免於點擊劫持。使用下列 YAML 語法，將自訂安全標頭套用至您的應用程式。

```
customHeaders:
  - pattern: '**'
    headers:
      - key: 'Strict-Transport-Security'
        value: 'max-age=31536000; includeSubDomains'
      - key: 'X-Frame-Options'
        value: 'SAMEORIGIN'
      - key: 'X-XSS-Protection'
        value: '1; mode=block'
      - key: 'X-Content-Type-Options'
        value: 'nosniff'
      - key: 'Content-Security-Policy'
        value: "default-src 'self'"
```

## 設定快取控制自訂標頭
<a name="example-cache-headers"></a>

使用 Amplify 託管的應用程式會遵守原始伺服器傳送的`Cache-Control`標頭，除非您使用您定義的自訂標頭來覆寫它們。Amplify 只會為具有`200 OK`狀態碼的成功回應套用快取控制自訂標頭。這可防止錯誤回應被快取，並提供給提出相同請求的其他使用者。

您可以手動調整 `s-maxage` 指令，以進一步控制應用程式的效能和部署可用性。例如，若要增加內容在邊緣保持快取的時間長度，您可以透過將值更新`s-maxage`為超過預設 600 秒 (10 分鐘） 來手動增加存留時間 (TTL)。

若要指定 的自訂值`s-maxage`，請使用下列 YAML 格式。此範例會將相關聯的內容在邊緣快取 3600 秒 （一小時）。

```
customHeaders:
  - pattern: '/img/*'
    headers:
      - key: 'Cache-Control' 
        value: 's-maxage=3600'
```

如需使用 標頭控制應用程式效能的詳細資訊，請參閱 [使用 Cache-Control 標頭來提高應用程式效能](Using-headers-to-control-cache-duration.md)。