307 エラーの正体とリダイレクトの仕組みを解説
HTTP STATUS 307
307 は、エラーではありません
「307 が出た」と慌てる前に。リダイレクトの仕組み、301・302・308 との違い、困ったときの切り分けを、仕様と公式文書に基づいて整理します。
$ curl -i https://example.com/old
HTTP/2 307
location: https://example.com/new
# 同じメソッド・同じ本文で、移動先へ再送する
307 の意味
「いまは別の URL にあります」という一時的な転送の案内です。
最大の特徴
メソッドと本文を変えずに、移動先へ送り直させます。
ブラウザーが作る 307
HSTS による「307 Internal Redirect」は、サーバーの不具合ではありません。
本当に困るとき
転送が終わらないループは、設定の組み合わせが原因です。
はじめに読みたい記事
目的別の入り口
| 知りたいこと | 読む記事 |
|---|---|
| 307 が何を意味するのか | 307 Temporary Redirect とは |
| 302 とどう違うのか | 307 と 302 の違い |
| 恒久的な転送で POST を保ちたい | 308 Permanent Redirect |
| POST の内容が届かない | 307 と POST リクエスト |
| nginx で設定したい | nginx で 307 を返す |
| Apache で設定したい | Apache で 307 を返す |
| PHP で設定したい | PHP で 307 を返す |
| PHP の重大な脆弱性への対応 | PHP の重大な脆弱性(CVE-2026-109618・109619) |
| 検索順位への影響が気になる | 307 と SEO |
このサイトの方針
記事の根拠は、標準仕様(RFC 9110 など)と、各ソフトウェアの公式文書、検索エンジン事業者の公開文書に限っています。確認できなかった内容は掲載せず、バージョンによって変わりうる内容には確認した日付を書いています。