Ответ
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-адреса страницы для сохранения её позиций в поисковой выдаче.
- Смена домена: Перенаправление всего трафика со старого домена на новый.
- Рефакторинг структуры сайта: При изменении путей к разделам или статьям.
Ответ 18+ 🔞
А, слушай, вот эта штука — 301 редирект. Это когда ты пытаешься зайти на старую страницу, а тебе сервер такой: «Э, дружок-пирожок, мы тут переехали навсегда, вот новый адрес, держи, и больше не возвращайся сюда, блядь».
Это не какой-то временный «ой, мы тут прибраться не успели», а именно насовсем, ёпта. Как переезд из хрущёвки в новостройку, а старую квартиру потом снесли. И все поисковики, эти умные жопы, должны понять, что весь «вес» и авторитет со старой страницы теперь перетекает на новую. Если сделать это неправильно — пиши пропало, трафик накроется медным тазом.
Как эта магия работает, если по-простому:
- Ты, такой довольный, стучишься в браузере по адресу
/staraya-stranica. - Сервер, вместо контента, плюёт тебе в лицо кодом
301и кричит: «Ищи в другом месте! Новый адрес —/novaya-stranica!». - Твой браузер, покорный как пёс, сразу бежит по новому адресу.
- И главное — он это запоминает! В следующий раз он может сразу лететь на новый URL, даже не спрашивая старый. Экономия времени, блядь, целых наносекунд!
Вот смотри, как это выглядит в коде, на примере Flask (код не трогаем, он святой):
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/staraya-stranica')
def old_page():
# Вот тут и происходит вся движуха. Кидаем клиента на новый адрес с кодом 301.
return redirect(url_for('new_page'), code=301)
@app.route('/novaya-stranica')
def new_page():
return "А вот и новая страница, добро пожаловать!"
И где этот гениальный инструмент применяется? Да везде, сука!
- Для SEO-спецов: Переименовал раздел на сайте? Без 301 редиректа все твои прошлые заслуги в поиске — на хуй улетят. А так — плавненько всё переедет.
- Смена домена: Был
sait.ru, сталkruche-sait.com. Чтобы народ не потерялся, вешаешь 301 со всех старых адресов на новые. Красота. - Чисто технический рефакторинг: Упростил структуру сайта, убрал лишние папки. Чтобы ссылки из интернета не вели в пустоту, ставишь эти редиректы. Пользователь даже не заметит подмены, хитрая жопа.
Короче, 301 — это как сказать и поисковикам, и пользователям: «Забудь старый путь, вот новый, и он теперь твой дом». Главное — не перепутать с временным редиректом, а то будет ебаться с кэшами потом, овердохуища.