TrueURL
TrueURL

メニュー

307 一時的なリダイレクト

Location の URL に、同じメソッドとボディでリクエストし直す必要がある一時的なリダイレクトです。POST が GET に変わることがある 302 とは異なります。

リーズンフレーズ
Temporary Redirect
リダイレクト
はい
デフォルトでキャッシュ可能
いいえ

307 Temporary Redirect は、対象のリソースが一時的に Location ヘッダーの URL にあり、クライアントはリダイレクトをたどる際にリクエストメソッドを変更してはならないことを示します。POST は同じボディを持つ POST のまま、PUT は PUT のままです。以降のリクエストは、引き続き元の URL に送る必要があります。307 はデフォルトではキャッシュされません。

HTTP/1.1 で 307 が追加されたのは、302 Found のあいまいさを解消するためです。ブラウザーは、POST に対する 302 を GET でたどります。API エンドポイント、アップロード、フォームの POST の一時的なリダイレクトなど、メソッドを維持する必要がある場面で使ってください。

HSTS を使っているサイトの http:// アドレスを入力すると、ブラウザーのデベロッパーツールに 307 Internal Redirect と表示されることがあります。このリダイレクトはブラウザー自身が HSTS リストに基づいて生成したもので、サーバーには届いていません。サーバー自身のリダイレクトは 301 であることも十分ありえます。サーバーが実際に何を送っているかは、TrueURL の HTTPS リダイレクトチェッカーのようなサーバーサイドのチェックで確認できます。

レスポンス例

HTTP
HTTP/1.1 307 Temporary Redirect
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://eu.api.example.com/v1/upload
Cache-Control: no-store
Content-Length: 0

SEO とリダイレクトチェック

Google は 307 を 302 と同様に、一時的なリダイレクトとして、また弱い正規化シグナルとして扱うため、通常は元の URL がインデックスに残ります。一時的な状況ではそれが正しい動作ですが、恒久的な移動には 308 または 301 を使ってください。フレームワークによっては、デフォルトで 307 を返すものもあります。たとえば Next.js は、permanent: false のリダイレクトに 307、permanent: true に 308 を使うので、設定がどちらを生成するかを確認してください。

よくある原因と主な用途

  • API やアップロード用のエンドポイントが一時的に移動しており、POST のボディをリダイレクト後も維持する必要がある場合。
  • メンテナンス、負荷分散、地域別のルーティングによって、リクエストを一時的に別の場所へ送っている場合。
  • フレームワークのデフォルトの一時的なリダイレクト。たとえば permanent: false を指定した Next.js や、Starlette と FastAPI の RedirectResponse です。
  • ブラウザーのデベロッパーツールに表示される HSTS の「307 Internal Redirect」。これはサーバーではなく、ブラウザーが生成したものです。

301 リダイレクトチェッカー

無料の TrueURL リダイレクトチェッカーで、URL が返すすべてのステータスコードをホップごとに確認できます。