

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# リスナールールの変換
<a name="rule-transforms"></a>

ルール変換は、ターゲットにルーティングされる前にインバウンドリクエストを書き換えます。リクエストを書き換えても、ルール条件を評価する際のルーティングの決定は変更されません。これは、クライアントがターゲットが期待するのとは異なる URL またはホストヘッダーを送信する場合に便利です。

ルール変換を使用すると、パス、クエリ文字列、ホストヘッダーを変更する責任がロードバランサーにオフロードされます。これにより、アプリケーションコードにカスタム変更ロジックを追加したり、サードパーティーのプロキシを使用して変更を実行したりする必要がなくなります。

Application Load Balancer は、リスナールールの次の変換をサポートしています。変換

`host-header-rewrite`  
リクエストのホストヘッダーを書き換えます。変換は正規表現を使用してホストヘッダーのパターンを照合し、それを置換文字列に置き換えます。

`url-rewrite`  
リクエスト URL を書き換えます。変換は正規表現を使用してリクエスト URL のパターンを照合し、それを置換文字列に置き換えます。

**変換の基本**
+ ルールごとに 1 つのホストヘッダー書き換え変換と 1 つの URL 書き換え変換を追加できます。
+ 変換をデフォルトルールに追加することはできません。
+ パターンが一致しない場合、元のリクエストがターゲットに送信されます。
+ パターンが一致しても変換が失敗した場合、HTTP 500 エラーが返されます。

## ホストヘッダーの書き換え変換
<a name="host-header-rewrite-transforms"></a>

ホストヘッダーで指定されたドメイン名を変更できます。

**Example ホストヘッダー変換の例**  
ルールの作成時、または変更時に変換を指定できます。詳細については、[create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) および [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html) コマンドを参照してください。ホストヘッダー変換の例を次に示します。ホストヘッダーを内部エンドポイントに変換します。  

```
[
  {
      "Type": "host-header-rewrite",
      "HostHeaderRewriteConfig": {
          "Rewrites": [
              {
                  "Regex": "^mywebsite-(.+).com$",
                  "Replace": "internal.dev.$1.myweb.com"
              }
          ]
      }
  }
]
```
たとえば、この変換はホストヘッダー `https://mywebsite-example.com/project-a` を `https://internal.dev.example.myweb.com/project-a` として書き換えます。

## URL 書き換え変換
<a name="url-rewrite-transforms"></a>

URL のパスまたはクエリ文字列を変更できます。ロードバランサーレベルで URL を書き換えることで、バックエンドサービスが変更されても、フロントエンド URL はユーザーと検索エンジンで一貫性を保つことができます。複雑な URL クエリ文字列を簡素化して、お客様が簡単に入力できるようにすることもできます。

URL のプロトコルまたはポートは変更できず、パスとクエリ文字列のみを変更できることに注意してください。

**Example URL 書き換え変換の例**  
ルールの作成時、または変更時に変換を指定できます。詳細については、[create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html) および [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html) コマンドを参照してください。URL 書き換え変換の例を次に示します。ディレクトリ構造をクエリ文字列に変換します。  

```
[
  {
      "Type": "url-rewrite",
      "UrlRewriteConfig": {
          "Rewrites": [
              {
                  "Regex": "^/dp/([A-Za-z0-9]+)/?$",
                  "Replace": "/product.php?id=$1"
              }
          ]
      }
  }
]
```
たとえば、この変換はリクエスト URL `https://www.example.com/dp/B09G3HRMW` を `https://www.example.com/product.php?id=B09G3HRMW` として書き換えます。

**URL の書き換えと URL リダイレクトの違い**


| 特性 | URL リダイレクト | URL の書き換え | 
| --- | --- | --- | 
| URL 表示 | ブラウザのアドレスバーの変更 | ブラウザのアドレスバーの変更なし | 
| ステータスコード | 301 (永続的) または 302 (一時的) を使用 | ステータスコードの変更なし | 
| Processing | ブラウザ側 | サーバー側 | 
| 一般的な用途 | ドメインの変更、ウェブサイトの統合、壊れたリンクの修正 | SEO の URL クリーンアップ、複雑な構造の非表示、レガシー URL マッピングの提供 | 