

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

# Amplify アプリケーションのリダイレクトと書き換えの設定
<a name="redirects"></a>

リダイレクトを使用すると、ウェブサーバーで 1 つの URL から別の URL にナビゲーションを再ルートすることができます。リダイレクトは一般的に、URL の外観をカスタマイズする、リンクが壊れないようにする、アドレスを変更せずにアプリまたはサイトのホスティング場所を移動する、ウェブアプリで必要なフォームへの URL を変更するといった理由で使用されます。

## Amplify がサポートするリダイレクトについて
<a name="types-of-redirects"></a>

Amplify は、コンソールで次のリダイレクトタイプをサポートしています。

 **恒久的なリダイレクト (301)** 

301 リダイレクトは、ウェブアドレスの送信先への恒久的な変更を目的としています。新しい送信先アドレスには、元のアドレスの検索エンジンのランキング履歴が適用されます。リダイレクトはクライアント側で行われるため、ブラウザのナビゲーションバーには、リダイレクト後の送信先アドレスが表示されます。

301 リダイレクトを使用する一般的な理由を以下に示します。
+ ページのアドレスが変更されたときにリンク切れを回避する。
+ ユーザーがアドレスに予測可能なタイプミスをしたときにリンクが壊れるのを防ぐ。

 **一時的なダイレクト (302)** 

302 リダイレクトは、ウェブアドレスの送信先への一時的な変更を目的としています。新しい送信先アドレスには、元のアドレスの検索エンジンのランキング履歴は適用されません。リダイレクトはクライアント側で行われるため、ブラウザのナビゲーションバーには、リダイレクト後の送信先アドレスが表示されます。

302 リダイレクトを使用する一般的な理由を以下に示します。
+ 元のアドレスの修正中に迂回先を提供する。
+ ユーザーインターフェイスの A/B 比較用のテストページを提供する。
**注記**  
アプリが予期しない 302 レスポンスを返す場合、エラーの原因はアプリのリダイレクトとカスタムヘッダーの設定を変更したことが原因と考えられます。この問題を解決するには、カスタムヘッダーが有効であることを確認し、アプリのデフォルトの 404 リライトルールを再度有効にします。

 **書き換え (200)** 

200 リダイレクト (書き換え) は、まるで元のアドレスから配信されたかのように、送信アドレスからのコンテンツを表示することを目的としています。検索エンジンのランキング履歴は、引き続き元のアドレスに適用されます。リダイレクトはサーバー側で行われるため、ブラウザのナビゲーションバーには、リダイレクト後の元のアドレスが表示されます。200 リダイレクトを使用する一般的な理由を以下に示します。
+ サイトのアドレスを変更せずに、サイト全体を新しいホスティング場所にリダイレクトする。
+ 単一ページのウェブアプリケーション (SPA) へのすべてのトラフィックを index.html ページにリダイレクトし、クライアント側のルーター機能で処理する。

 **Not Found (404)** 

404 リダイレクトは、リクエストが存在しないアドレスを指している場合に発生します。リクエストされたページではなく、404 の送信先ページが表示されます。404 リダイレクトが発生する一般的な理由を以下に示します。
+ ユーザーが誤った URL を入力したときにリンク切れメッセージが表示されないようにする。
+ ウェブアプリケーションの存在しないページへのリクエストをクライアント側のルーター機能で処理する index.html ページに向けること。

## リダイレクトの順序について
<a name="order-of-redirects"></a>

リダイレクトはリストの上から順に適用されます。順序に、意図した効果があることを確認してください。例えば、次のリダイレクト順序では、*/docs/* 以下の特定のパスに対するすべてのリクエストが* /documents/*の下の同じパスにリダイレクトされます。ただし*/docs/specific-filename.html*は*/documents/different-filename.html*にリダイレクトされます。

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

次のリダイレクト順序では、*specific-filename.html* から *different-filename.html* へのリダイレクトは無視されます。

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

## Amplify がクエリパラメータを転送する方法について
<a name="query-parameters"></a>

クエリパラメータを使用して、URL の一致をより詳細に制御できます。Amplify は、以下の例外を除いて、301 および302 リダイレクトのすべてのクエリパラメータを宛先パスに転送します。
+ 元のアドレスに特定の値に設定されたクエリ文字列が含まれている場合、Amplify はクエリパラメータを転送しません。この場合、リダイレクトは指定されたクエリ値を持つ宛先 URL へのリクエストにのみ適用されます。
+ マッチングルールの宛先アドレスにクエリパラメータがある場合、クエリパラメータは転送されません。たとえば、リダイレクトの宛先アドレスが`https://example-target.com?q=someParam`の場合、クエリパラメータは渡されません。