意味
リソースは恒久的に移動し、クライアントは新しい URL へ同じメソッドとボディでリクエストをやり直す必要があります。
よくある原因
- API のパスが恒久的に移動した
- フレームワークが末尾スラッシュや HTTPS を強制している
- POST を保持する必要のあるドメイン移行
対処法
クライアント・閲覧者の場合
コード内の URL を更新し、同じリクエストを送り直します。非常に古いクライアントは 308 に対応していないことがあります。
サイトや API の運営者の場合
POST や PUT を受けるエンドポイントの恒久的な移動には 308 を使います。通常のページでは、検索エンジンにとって 301 と 308 は同じです。
レスポンス例
HTTP/1.1
HTTP/1.1 308 Permanent Redirect
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Location: https://api.example.com/v2/items
Content-Length: 0 仕様
よくある質問
› 308 は 301 と同様に SEO 評価を引き継ぐ?
はい。Google は 308 を 301 と同じに扱います。
› Next.js や Vercel が 308 を返すのはなぜ?
末尾スラッシュやリダイレクトのルールが、メソッドを保持するためにデフォルトで 308 を使うからです。