Ответ
301 Moved Permanently — это HTTP-код состояния, который сообщает клиенту (например, браузеру или поисковому роботу), что запрошенный ресурс был навсегда перемещен на новый URL, указанный в заголовке Location
.
В отличие от временного редиректа 302 Found
, 301
указывает на постоянное изменение.
Как это работает:
- Клиент запрашивает
/old-url
. - Сервер отвечает статусом
301
и заголовкомLocation: /new-url
. - Клиент автоматически делает новый запрос на
/new-url
. - Браузеры могут кэшировать этот редирект, а поисковые системы передают "вес" (ranking power) со старой страницы на новую.
Пример на Python с использованием Flask:
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/old-page')
def old_page():
# Возвращаем ответ с кодом 301 и новым URL
return redirect(url_for('new_page'), code=301)
@app.route('/new-page')
def new_page():
return "Это новая страница!"
Основные сценарии использования:
- SEO: При смене URL-адреса страницы для сохранения её позиций в поисковой выдаче.
- Смена домена: Перенаправление всего трафика со старого домена на новый.
- Рефакторинг структуры сайта: При изменении путей к разделам или статьям.