Генератор 301-редиректов
Готовые правила для .htaccess и nginx: переезд на https, склейка www, слэш в конце адреса и перенос старых страниц списком. Всё считается в браузере.
www в адресе
Слэш в конце адреса
Разделитель — табуляция (вставка из таблицы), пробел, запятая или точка с запятой. Старые адреса — с этого сайта, новые могут вести и на другой домен. Строки, начинающиеся с #, пропускаются.
Перед выкладкой сохраните копию текущего .htaccess или конфига nginx и проверьте правила на тестовой копии сайта. Порядок важен: срабатывает первое подходящее правило. Браузер запоминает 301 надолго, поэтому проверяйте в приватном окне или командой curl -I.
Когда нужен 301-редирект
Код 301 говорит браузеру и поисковику: страница переехала навсегда, вот новый адрес. Поисковик со временем заменяет в индексе старый адрес новым и учитывает ссылки, которые вели на старый. Без редиректа старые адреса отдают 404, посетители из закладок и с чужих сайтов попадают в никуда, а позиции приходится набирать заново.
Типичные случаи:
- переезд с http на https;
- склейка адресов с www и без, чтобы у сайта был один основной адрес;
- редизайн или смена CMS, после которых поменялась структура адресов;
- смена домена;
- страница удалена, но есть близкая по смыслу замена.
Для временных переездов, например на время акции, есть 302. Если переезд окончательный, нужен именно 301.
Как пользоваться генератором
Укажите домен сайта. В режиме «Готовые правила» отметьте, что нужно: https, www, слэш в конце, чистые адреса вместо index.php. Генератор собирает правила так, чтобы посетитель доходил до основного адреса за один переход, где это возможно: http://www.example.ru сразу ведёт на https://example.ru, без промежуточного шага.
В режиме «Список адресов» вставьте пары «старый адрес — новый», например два столбца из таблицы. Генератор проверит список:
- старый адрес с чужого домена — такое правило на этом сайте не сработает;
- дубли и правила, которые перехватит строка выше;
- цепочки, когда новый адрес сам перенаправляется дальше;
- петли, когда адреса ведут друг на друга по кругу;
- адреса с параметрами после знака вопроса — для них нужен отдельный формат правила.
Цепочки и петли
Цепочка — это когда /a ведёт на /b, а /b дальше на /c. Сайт продолжает работать, но каждый лишний переход добавляет задержку, а поисковый робот проходит ограниченное число шагов. Цепочки обычно копятся после нескольких редизайнов: правила старого переезда остаются, сверху добавляются новые. Генератор может сразу направить каждый старый адрес на конечный.
Петля — это когда адреса ведут друг на друга по кругу. Браузер показывает ошибку «Слишком много переадресаций», и страница не открывается вообще. Такие строки генератор в правила не включает.
Куда вставлять правила
Apache. Файл .htaccess в корне сайта. Правила редиректов ставьте в начало файла, до правил CMS: у WordPress это блок # BEGIN WordPress, у Битрикса — правила, которые отправляют запросы на urlrewrite.php. На хостинге должен работать mod_rewrite, у большинства хостингов он включён.
nginx. Блок server в конфигурации сайта. После правки проверьте конфиг командой nginx -t и перезагрузите nginx. На чистом nginx файл .htaccess не читается. Если nginx стоит перед Apache, как у многих хостингов, .htaccess обычно работает.
Если вы переносите сайт целиком, пригодится наш разбор переезда на другой хостинг без простоя.
Как не сломать сайт
- Сохраните копию текущего .htaccess или конфига. Если сайт перестал открываться, верните копию: это быстрее, чем искать ошибку.
- Проверьте на тестовой копии сайта, если она есть.
- Проверьте все варианты адреса: http и https, с www и без, со слэшем и без. Удобнее всего командой
curl -I http://www.example.ru/page: в ответе видно код и заголовок Location. - Браузер запоминает 301 и может не пойти на сервер повторно. Проверяйте в приватном окне.
- Посмотрите настройки CMS: у WordPress и Битрикса есть свой адрес сайта и свои редиректы. Если они спорят с .htaccess, получится петля.
- Не отправляйте все удалённые страницы на главную. Поисковики считают такие переходы ошибкой. Лучше вести на ближайший раздел или честно отдавать 404.
Вопросы.
Чем 301-редирект отличается от 302?
Сколько держать редиректы после переезда?
Что выбрать: Redirect 301 или RewriteRule?
Почему после вставки правил «слишком много переадресаций»?
Можно ли перенаправлять адреса с параметрами, например ?id=15?
Генератор отправляет мои адреса на ваш сервер?
Переезжаете на новый сайт и боитесь потерять позиции?
Составим карту редиректов для всех старых адресов, проверим цепочки и петли, настроим сервер и проследим за индексацией после переезда.