Как сделать редирект со страницы на страницу
Как сделать редирект. Все виды.
Есть несколько типов редиректов, рассмотрите каждый из них в кратце, чтобы определить какой из них вам больше подходит.
Редирект через htaccess – самый популярный, и довольно простой способ. Чтобы его сделать, вам понадобится создать в папке сайта файл с названием .htaccess (обратите внимание, что название файла начинается с точки, это не опечатка). Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его.
Читайте ниже чтобы узнать какие именно инструкции в нем нужно прописать, чтобы создать перенаправление.
Редирект при помощи PHP – подойдет в том случае, если вы разбираетесь в PHP и знаете структуру своего сайта. Этот вариант подойдет вам, если ваш сайт написан не на CMS. В ином случае лучше используйте редирект через htaccess.
Редирект HTML – если у вас простой HTML сайт и вам нужно сделать перенаправление для одной страницы – это самый простой вариант. Сделать перенаправление для всего сайта этим способом будет трудозатратно, особенно если у вас на сайте больше 10 страниц.
Редирект при помощи JavaScript – этот способ подойдет также в том случае, если у вас простой сайт, либо если нужно сделать редирект для одной – двух страниц, либо для всего сайта в целом.
Инструкции, которые вы увидите ниже, нужно прописать в файл .htaccess в самое начало.
- Редирект всего сайта (всех страниц) на другой сайт
Пропишите эту строку в .htaccess файле, и тогда все посетители вошедшие на сайт по протоколу HTTP будут перенаправляться на защищенный протокол HTTPS.
Если вы прописываете редирект для WordPress, то обратите внимание на то, что в файле уже есть строка RewriteEngine On. Поэтому сразу под ней вам нужно добавить такие строки
В PHP редирект делается так: сервер отправляет заголовки headers браузеру посетителя, и тот переходит по нужному адресу автоматически.
Стоит отметить важный момент, отправлять заголовки можно только до вывода другой информации. То есть они должны отправляться до вывода любой другой информации через echo и до отправки кук.
- Редирект на другой сайт
Чтобы сделать редирект через HTML, нужно добавить на каждую страницу где он планируется специальный мета тег. Мета тег прописывается внутри тега .
На больших сайтах этот метод не удобен, и рекомендуется использовать редирект через htaccess.
- Редирект на другой сайт
Этот вид перенаправления удобен тем, что его код можно прописать в одном файле (в отличие от html метода), и этот файл вставить на каждой странице прописав
- Редирект на другой сайт
301 редирект (переадресация) через .htaccess – на все случаи жизни
Три важных совета и семнадцать конкретных примеров установки 301 переадресации страниц через htaccess!
Советы
Располагайте переадресации страниц в файле от частных к более глобальным (сверху вниз). Например: простая переадресация двух страниц стоит выше, чем глобальное правило редиректов с www на без www.
Избегайте последовательных редиректов (двух, трех и т.д.). Правила должны быть настроены так, что при возникновении редиректа он должен перенаправлять пользователя (робота) только один (!) раз. Каждое лишнее переадресация – это секунды драгоценного времени отдачи страницы, это нагрузка на сервер, это нечеткие команды для поисковых роботов.
Не забывайте, что многие браузеры кешируют (запоминают редиректы), поэтому проверять переадресации лучше на сайте – https://www.bertal.ru.
В файле обязательно должна присутствовать команда:
Второй способ сделать редирект – это переадресация через php
Правила переадресаций
1. 301 редирект с одной страницы на другую
Самый простой вариант
2. 301 редирект с www на без www (главное зеркало – домен без www)
3. 301 редирект с без www на www (главное зеркало – домен с www)
4. 301 редирект со страниц со слешем на без слеша (весь сайт)
5. 301 редирект со страниц без слеша на слеш (часто в CMS системах устанавливается автоматически)
6. Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы
7. Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы
8. Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы
9. Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы
10. 301 редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru
11. 301 редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)
Пример: типа site.ru/index.php?n=1 на site.ru/?n=1
12. 301 редирект для index.php, index.html или index.htm (например в Joomla), массовая склейка
13. 301 редирект url с GET параметрами (динамический URL) на статический
1 вариант (простой адрес с GET параметром)
2 вариант (со страницы и GET параметром)
14. Все страницы одного домена на главную страницу другого домена
15. Каждая страница одного домена на такой же адрес другого url
16. Редирект с протокола http на https.
Если возникает циклический редирект, то воспользуйтесь этим вариантом:
Для Битрикс-сайтов на хостинге reg.ru
Для сертификатов https c Cloudflare:
17. Редирект с протокола https на http.
Обратный редирект, если перестали использовать SSL сертификат.
Как сделать 301 редирект?
Код ответа 301 (Moved Permanently) означает, что запрошенный документ теперь доступен по новому адресу на постоянной основе. Редирект 301 может понадобиться в нескольких случаях: переезд на новый домен, изменение адреса страницы или склейка зеркал сайта. Цели этих мероприятий вполне прозрачны:
- Перенос старых показателей на новую страницу или домен.
- Устранение битых ссылок, как внешних, так и внутренних.
- Устранение дублей страниц.
Существует несколько способов сделать 301 редирект, но я предпочитаю вариант с использованием файла .htaccess, который находится в корневой папке FTP вашего сайта (если его там нет, то просто создайте его, он не имеет расширения).
Настройка 301 редиректа со страницы на страницу
Довольно часто возникает ситуация, когда страница сайта была удалена или вынуждена сменить свой URL. При обращении к её старому адресу, пользователь, само собой, увидит страницу 404 ошибки (не найдено).
Если станица маловажная, то не стоит и возиться, но если к ней часто обращались посетители сайта (и, возможно, у кого-то она сидит в закладках), если на неё ведут неподконтрольные вам внешние ссылки или, наоборот, подконтрольные внутренние, но в таких объёмах, что очень хочется их править, то настройка 301 редирект со старой страницы на новую станет для вас идеальным решением.
Также его можно использовать для борьбы с дублями страниц. В общем нужно писать книгу на тему «99 способов использование Redirect 301». Вот его синтаксис:
Ну или так, результат будет один и тот же:
Поясняю: /old-page.html — относительный адрес старой страницы. Он может быть вложенным: /old-category/old-page.html, ну или таким: /old-category/old-page/ — тут никаких ограничений нет. Тоже самое относится к https://new-domain.ru/new-page.html (новой странице), с той лишь разницей, что путь тут абсолютный (не обязательно, чтобы это был новый домен — может быть просто новый внутренний адрес страницы).
Настройка 301 редиректа при переносе сайта на новый домен
Не менее понятная ситуация. Возникла необходимость переехать на новый домен, сохранив показатели старого (тИЦ, PR). В этом случае приписываем в .htaccess старого домена следующее:
В данном примере мы установили редирект всех страниц старого домена на страницы нового (при условии, что их относительные адреса совпадают). При этом мы оставили без редиректа на старом домене файл robots.txt, чтобы процесс переноса был более полноценным. В него мы прописываем:
Ну и ждём пару месяцев, пока переезд домена не будет зачтен, а все характеристики — переданы.
Склейка зеркал сайта: 301 редирект c www на без www и наоборот
Существует несколько вариантов обращения к сайту — с www и без www (например, pingoblog.ru и www.pingoblog.ru). Пользователю все равно, как именно вводить URL, так как он в любом случае попадет на одну и ту же страницу. Иначе дело обстоит с поисковыми системами. Они расценивают www.site.ru и site.ru, как два совершенно разных домена (что тянется из глубин истории всемирной сети, когда это действительно было так).
Эти дубли мешают индексации сайта и продвижению в целом, так как, во-первых, это банальные дубли страниц (уж извиняюсь за повторение) и, во-вторых, входящие ссылки будут также укладываться в разные корзины. Тоже самое касается и дублей главной страницы: site.ru, site.ru/index.html, site.ru/index.php и т.д. По этой причине еще на этапе создания сайта желательно позаботиться об этом вопросе и одну из версий сайта (например, c www) переадресовать на другую (например, без www). Если момент был упущен, то тут нет ничего страшного.
Рассмотрим процесс склейки зеркал с помощью 301 редиректа поэтапно.
1. Определяем основной домен, выбранный для индексации поисковыми системами.
Основное зеркало можно легко определить по результатам поисковой выдачи Яндекс и Google. Вводим название домена и смотрим, какой адрес отобразится: www.site.ru или site.ru. Если же сайт еще не проиндексирован, то выбираем его по своему усмотрению. Если в Google и Yandex основные домены разные, то лучше оставьте Яндексовский.
2. Прописываем 301 редирект в .htaccess.
Находим в корне FTP сайта файл .htaccess, скачиваем и открываем в блокноте, а затем вносим в него необходимые изменения. Первый вариант — 301 редирект домена без www на с www:
Обратная ситуация — с www на без www:
После завершения редактирования, сохраняем файл и загружаем его в корневую папку FTP с перезаписью.
Опционально можно сразу же позаботиться о дублях главной страницы вида index.php и index.html, добавим ниже следующий код:
Ну и, опять же, если у вас site.ru:
3. Настройка robots.txt
Увидели знакомую директиву, оставляющей robots.txt нетронутым? Все верно, вносим изменение в robots.txt:
4. Проверяем работу сайта.
Вводим тот адрес, который с которого мы проставляли редирект, например www.site.ru или site.ru/index.html и если при заходе на него происходит переход на site.ru, то всё настроено правильно.
5. Настройка Yandex и Google вебмастер.
Дополнительно применяем соответствующие настройки в личных кабинетах поисковых систем. В случае с Yandex:
Яндекс Webmaster
Ну и для Google:
Google Webmaster
На этом вроде всё. Удачи вам и если появятся вопросы, то пишите в комментариях.
Материал обновлен: 12 января 2016 года.
Источники:
https://yutex.ru/redirect/kak-sdelat-redirect-vse-vidi.html
https://web-optimizator.com/301-redirekt-htaccess/
https://pingoblog.ru/72-kak-sdelat-301-redirekt.html