Редирект 307 Temporary Redirect: что значит и когда нужен
307 Temporary Redirect — ресурс временно находится по другому адресу, и запрос нужно повторить туда тем же методом. Это строгий вариант 302: при 307 браузер не имеет права превратить POST в GET, поэтому данные формы или запроса к API не теряются.
Содержание 8
Что означает код 307
По стандарту HTTP код 307 значит, что ресурс временно находится по другому адресу и, переходя туда автоматически, браузер не должен менять метод запроса. Временный адрес сервер указывает в заголовке Location, а дальше клиенту стоит обращаться по исходному адресу.
Код 307 добавили в стандарт позже 302: с 301 и 302 браузеры на практике стали менять POST на GET, и для перенаправления без смены метода понадобился отдельный код.
«307 Internal Redirect» в Chrome
В инструментах разработчика Chrome на вкладке Network можно увидеть ответ «307 Internal Redirect», хотя сервер такого кода не отправлял. Это перенаправление создал сам браузер, не обращаясь к серверу. Причину он пишет в заголовке Non-Authoritative-Reason.
Например, причина HSTS значит: сайт раньше прислал браузеру заголовок Strict-Transport-Security — просьбу открывать его только по HTTPS, — и теперь браузер сам меняет http:// на https://. Это нормальное поведение для сайта с HSTS, а не ошибка сервера.
Как настроить 307
В nginx код 307 в директиве return поддерживается с версий 1.1.16 и 1.0.13:
location = /old-page/ {
return 307 /new-page/;
}После любых правок: sudo nginx -t, затем sudo systemctl reload nginx.
В Apache:
Redirect 307 /old-page/ https://example.com/new-page/В PHP:
header('Location: https://example.com/new-page/', true, 307);
exit;Когда нужен 307
Для обычных страниц, которые открывают методом GET, разницы между 302 и 307 почти нет. Для форм и API 307 надёжнее: POST останется POST, и данные запроса дойдут до нового адреса. Если адрес меняется навсегда, нужен 308 или 301.
307 и поиск Яндекса
По справке Яндекса, при 307 документ временно перемещён на адрес из заголовка Location, а метод, тело и заголовки запроса при перенаправлении сохраняются.
Чем 307 отличается от соседних кодов
| Код | Насколько | Метод запроса |
|---|---|---|
| 302 | На время | POST может смениться на GET |
| 303 See Other | Ответ — по другому адресу | Меняется на GET |
| 307 | На время | Не меняется |
| 308 | Навсегда | Не меняется |
Источники
- RFC 9110, раздел 15.4.8 — определение кода 307; раздел 15.4 — зачем понадобились 307 и 308.
- Документация nginx: return.
- Документация Apache: Redirect.
- Документация PHP: функция header.
- Исходный код Chromium: redirect_util.cc — «Internal Redirect» и заголовок Non-Authoritative-Reason.
- Яндекс Вебмастер: коды ответа HTTP.
Сверено 6 октября 2026 года.
Что почитать дальше
- Редирект 308 — постоянное перенаправление без смены метода.
- Редирект 302 — обычное временное перенаправление.
- Бесплатный SSL-сертификат — как перевести сайт на HTTPS.
- Ошибка 405 Method Not Allowed — когда метод запроса не принимается.
Проверено и обновлено: 07.10.2026