Ответ
Перенаправление (HTTP redirect) — это стандартный механизм, при котором сервер сообщает клиенту (браузеру) о необходимости запросить другой URL. Реализация зависит от бэкенд-технологии.
Примеры на разных технологиях:
1. PHP (чистый):
Функция header() отправляет специальный HTTP-заголовок Location. Критически важно отправить его до любого вывода в тело ответа.
// Простой редирект с кодом 302 (Found - временный)
header('Location: /new-page.php');
exit; // Прекращаем выполнение скрипта
// Постоянный редирект (301 Moved Permanently)
header('Location: /new-location', true, 301);
exit;
2. Laravel (PHP-фреймворк):
Используется хелпер redirect() или фасад Redirect.
return redirect('/home');
return redirect()->route('profile', ['id' => 1]); // На именованный маршрут
return redirect()->away('https://external-site.com'); // Внешний URL
// С данными сессии (flash)
return redirect('dashboard')->with('status', 'Profile updated!');
3. Node.js (Express):
res.redirect('/foo/bar');
res.redirect('http://example.com');
res.redirect(301, '/permanent-page');
4. В клиентском JavaScript:
// Изменение location
window.location.href = 'https://example.com';
// Имитация клика по ссылке (сохраняет историю)
window.location.assign('/new-page');
// Замена текущей записи в истории
window.location.replace('/new-page');
Важные HTTP-коды состояния для редиректов:
- 301 Moved Permanently: Ресурс навсегда перемещен. Поисковые системы обновляют индекс.
- 302 Found (или 307 Temporary Redirect): Редирект временный. Оригинальный URL остается актуальным.
- 308 Permanent Redirect: Как 301, но гарантирует, что метод запроса (POST/PUT) не изменится.
При разработке важно правильно выбирать тип редиректа для SEO и корректной работы приложения.