Редирект без смены url
Что такое редирект и как его настроить
Владельцы интернет-ресурсов часто сталкиваются с тем, что им нужно изменить доменное имя сайта. Например, из-за ренейминга или чтобы перейти на безопасный протокол соединения. Чтобы предстоящие изменения не повлияли на ваш бизнес и пользовательский опыт клиентов, используйте редирект.
В этой статье разбираемся, в каких случаях он нужен и как его настроить.
Что такое редирект и когда он нужен
Редирект — это перенаправление пользователя с одного URL на другой. Это нужно, чтобы человек не потерял вас, если вы измените адрес сайта или страницы. Кликая на старую ссылку, пользователь незаметно для себя окажется по новому нужному адресу. Например, если вы перейдёте по ссылке http://nic.ru/, автоматически попадёте на сайт с безопасным профилем https://nic.ru/.
Неактуальный сайт или страницу программисты называют донором, а ту, на которую перенаправляют, — акцептором. В нашем случае http://nic.ru/ — сайт-донор, а https://nic.ru/ — сайт-акцептор.
В каких случаях нужен редирект
Это не все возможные поводы для редиректа. Они возникают в зависимости от того, какие проблемы нужно решить перенаправлением.
Какие бывают редиректы
Есть четыре основных вида редиректа — 301, 302, 303, 307. Поисковые системы сами определяют его по коду состояния http.
301 — постоянный редирект
Он означает, что ресурс навсегда перемещён на новый адрес. Сайт-донор пропадает из поиска, авторитет и показатели посещаемости передаются сайту-акцептору, который и будет индексироваться.
302 — временный редирект со статусом «Найдено»
Поисковые системы расценивают страницу как временно несуществующую и перенаправляют пользователя на нужную. Все настройки и показатели останутся по старому адресу, индексироваться новый сайт тоже не будет. Такое перенаправление пригодится, например, когда нужно будет обновить сайт.
303 и 307 — аналоги 302 редиректа
303 редирект обозначает «смотрите другой ресурс», его применяют, когда вы не перенесли контент на другой адрес, но у вас есть подходящий под перенаправление другой сайт или страница. Для этого редиректа браузер использует метод GET.
Статус 307 редиректа — временное перенаправление. То есть запрашиваемая страница в данный момент находится по другому адресу. В отличие от 302 изначальная версия ресурса сохранит свои позиции.
Вам не обязательно запоминать, какой редирект что обозначает. Эти цифры при настройке вам не пригодятся. Достаточно понимать, какое решение подойдёт именно в вашей ситуации — временное или постоянное — и написать код, подходящий под нужный редирект.
Как настроить редирект
Если нужно сделать перенаправление со страницы, подойдёт более простой вариант переноса — через админку сайта.
В этой статье рассмотрим эти способы на примере самых распространённых причин для редиректа.
Перенос сайта с одного домена на другой
Этот тип перенаправления можно сделать с помощью FTP-клиента. Этот вариант подойдёт тем, кто умеет работать с кодом или готов этому научиться.
Если язык программирования не для вас, перенести домен можно без знаний кода. У RU-CENTER есть специальный сервис «Перенаправление домена».
Перенос с помощью FTP-клиента
Чтобы изменить файл, нажмите на него правой кнопкой мыши и кликните «Редактировать» (в используемом вами FTP-клиенте может быть другой способ начала редактирования файла, но обычно названия пунктов меню очень похожи). Он автоматически загрузится к вам на компьютер и откроется в редакторе.
RewriteEngine On
RewriteBase /
Если такой записи нет, вставляем её сами в конец файла. Сразу после неё вставляем код с нужным условием:
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
где old-site\.ru — сайт-донор, а http://www.site.ru — сайт-акцептор.
Важно: В имени домена дефисы и точки необходимо экранировать, добавляя перед ними символ «\». Если речь идёт о домене, например, с кириллическими символами, то его нужно указывать в виде Punycode (xn--…), также включая символ «\».
Перенос с помощью сервиса «Перенаправление домена»
Если настройка через FTP-клиента кажется вам сложной, можно выбрать вариант проще — приобрести доступ к сервису «Перенаправление домена» у RU-CENTER. Чтобы в нём работать, не нужно разбираться в коде. Сможете сделать редирект для домена, всех его поддоменов, а также настроить до десяти индивидуальных правил перенаправления для конкретных поддоменов.
Организация перенаправления на безопасный протокол HTTPS
Ещё один популярный вариант редиректа — перенос сайта на безопасный протокол соединения с http на https. Мы расскажем об одном способе настройки этого вида редиректа, он подходит для хостинга RU-CENTER. Но, алгоритм обеспечения работы по HTTPS может отличаться на разных хостингах, поэтому точный способ такого перенаправления стоит уточнить у вашего хостинг-провайдера.
RewriteEngine On
RewriteBase /
Если такой записи нет, вставляем её сами в конец файла. Сразу после неё вставляем код с нужным условием:
RewriteCond %
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]
где https://domain.ru — ваш сайт.
Перенос сайта с домена без префикса www на домен с www
RewriteEngine On
RewriteBase /
Если такой записи нет, вставляем её сами в конец файла. Сразу после неё вставляем код с нужным условием:
RewriteCond %
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
где site.ru — страница-донор, а http://www.site.ru — страница-акцептор.
Перенос одной страницы на другую временно или постоянно
Перенаправить отдельную страницу можно в админке сайта. Это значительно упрощает задачу тем, кому нужен именно этот тип редиректа, а разбираться в коде не хочется.
Объясняем, как это сделать, на примере сайта на WordPress.
Заходим в админку сайта, находим в списке возможностей вкладку «Инструменты», в ней выбираем «Перенаправления» и кликаем на кнопку «Добавить новое».
Путь получается следующий: админка сайта → Инструменты → Перенаправления → Добавить новое.
Чтобы добавить перенаправление, заполните поля:
Исходный URL — в нём напишите относительный путь, то есть адрес страницы без указания домена, только то, что прописано после слеша.
Параметры запроса — выберите из выпадающего списка нужное условие. В нашем случае — «Точное совпадение всех параметров в любом порядке».
Целевой URL-адрес — полный адрес, куда вы планируете перенести контент.
Когда мы сохранили перенаправление, получился такой редирект:
где /baza-znanij/slovar — страница-донор,
Не откладывайте настройку редиректа. Есть как минимум три причины, чтобы перенаправить нужные страницы сразу же, как возникла потребность:
Что такое редирект, зачем он нужен и как сделать его на сайте
Редирект — это функция, которая так или иначе используется на большинстве сайтов. Его грамотная настройка позволяет избежать массы проблем в продвижении ресурса в поисковых системах.
Несмотря на кажущуюся простоту редирект таит в себе массу нюансов, о которых важно знать прежде, чем приступить к настройке. Какой вид выбрать, как выполнить его без ошибок, за что его любят и не любят поисковики — обо всём этом расскажем в статье.
Что такое редирект
Прежде всего необходимо разобраться с вопросом «Что такое редирект сайта?». В дословном переводе с английского это слово означает перенаправление. Например, если на одной из городских улиц по какой-то причине случился затор, регулировщик может перенаправить городской трафик на другую. Редирект работает похожим образом.
Редиректом в терминах IT называют автоматическую переадресацию пользователя с одного адреса страницы на другой. В большинстве случаев процесс перенаправления абсолютно незаметен для посетителя сайта.
Зачем нужен редирект
На сайтах он решает несколько задач. Чаще всего он перенаправляет посетителя со страниц с неактуальным адресом или информацией, однако этим его функционал не ограничивается.
Редирект для целей SEO
В поисковой оптимизации сайтов используется для:
Как работает редирект
Редирект — это четкая схема ответа на поисковый запрос пользователя, которая выглядит следующим образом:
Когда нельзя использовать редирект
Редирект — настройка полезная и должна быть в арсенале каждого владельца сайта. Однако и вреда его неправильное использование может нанести немало.
Использование опции не запрещено, но опасно с точки зрения SEO, если он создаётся для:
Иногда схожую функцию может выполнять тег rel=canonical. Они не индексируются, но позволяют поисковикам быстрее распознать новую ссылку как главную.
Виды редиректов
Исходя из того, что такое редирект, можно выделить несколько его видов. Имеющиеся различаются по двум показателям:
Рассмотрим каждый из видов подробнее.
301-й можно сравнить с постоянным переездом. Когда вы уезжаете из одного дома в другой и точно не вернётесь в старый.
Перенаправление этим способом настраивается навсегда, а старая страница больше не может участвовать в поисковой выдаче ни при каких условиях. При этом её показатели сохраняются и успешно переходят к новому ресурсу.
Этот вариант идеален, например, если с сайта необходимо удалить дубль — страницу, полностью дублирующую по содержанию ту, на которую идёт настройка. Однако во всех вышеперечисленных случаях он также может быть полезен.
Вариант оформления страницы ошибки 404
Поисковые системы реагируют на 301-й хорошо и сложностей обычно не возникает. Однако, если перенаправление настроено неправильно, пользователь при переходе на страницу получает ошибку 404 (не найдена).
Редирект 302 является временным. Возвращаясь к предыдущему примеру с переездом в новый дом, его можно сравнить, например, поездкой на дачу на летние каникулы. Городская квартира при этом остаётся в вашем доступе и вернуться туда можно в любой момент.
Процесс направления со старой страницы на новую настраивается временно, параметры старой страницы остаются привязаны к ней, а не переносятся на новую.
К такому виду часто прибегают владельцы интернет-магазинов, чтобы перенаправить потенциальных покупателей со страницы с товаром, который закончился, на позицию с аналогичными характеристиками. А вот выбирать его для переезда ресурса— не самый лучший и даже опасный вариант.
Нередки ситуации, когда при использовании 302- го для перманентного переезда страниц, веб-мастер обнаруживал проиндексированными обе версии. Для поисковых систем это означает полное дублирование страниц, а потому одна из них (чаще всего старая) будет исключена из выдачи.
303 и 307
307-й (Temporary Redirect) для поисковых систем фактически является точной репликой 302-го (Found). Это временное перенаправление трафика на новую страницу с сохранением всех параметров прежней.
Вообще же основная сфера его использования — необходимость перенаправить пользователя, сделавшего запрос, на другую страницу, которая не содержит точного ответа, но является частичной заменой запрошенной.
Типы редиректов
Рассмотренные выше виды различаются по своему функционалу. Однако, существует и второй фактор, отличающий один от другого. Это техническое исполнение редиректа. По нему можно выделить следующие варианты.
Htaccess-редирект
Htaccess — этот системный файл, который принадлежит к корневой структуре сайта. Чтобы получить к нему доступ необходимо зайти в панель управления хостинга, на котором размещен нужный веб-ресурс. Для настройки любого вида необходимо разместить в нём строку с соответствующим кодом.
PHP-редиректы
О тличается от вышеописанного тем, что находится на уровне сервера. Однако процесс будет схожим. Необходимо найти в корневой папке сайта PHP- файл и вписать в него строку кода для соответствующего редиректа.
Она работает медленнее, чем htacces. Однако, если страниц для которых нужно настроить редирект, много и сделать это нужно выборочно, а не для всех подряд, именно PHP может стать оптимальным вариантом.
JavaScript-редирект
Э тот тип отличается от предыдущих тем, что перенаправление осуществляется на стороне браузера, а не на стороне сервера. Соответственно, скорость переадресации резко снижается, так как скрипту необходимо полностью загрузиться для выполнения необходимых действий.
Важный минус такого способа: он не работает, если в браузере отключен JavaScript, что сегодня делают многие пользователи.
Основной сценарий применения JavaScript – пользователя нужно перенаправить на нужную страницу, но не сразу, а с задержкой. Например, при переезде на новый сайт его используют, чтобы вывести на экран сообщение типа «сейчас вы будете автоматически переадресованы на наш новый сайт».
HTML-редирект
В большинстве случаев серверные редиректы предпочтительнее браузерных, так как они обладают более высокой скоростью загрузки и не зависят от настроек на стороне пользователя.
Как сделать редирект
Ниже разберём несколько ситуаций, в которых владельцы сайтов чаще всего используют опцию редиректа.
C http на https
Из-за повсеместного переезда на https необходимость в этом редиректе возникает у многих. Для настройки через файл htaccess или PHP н ужно использовать следующий код:
C или на www
Этот редирект также очень важен для SEO, ведь с точки зрения поисковых систем страницы с префиксом www и без него являются разными и, соответственно, дублями.
Для выполнения настройки рекомендуется использовать специальные программы для генерации кодов редиректа, коих в Интернете существует множество, и сделать её через файл htacess.
Настройка перенаправления с одной страницы
Для выполнения этой операции действия нужно осуществлять по похожей схеме. Сначала сгенерировать код, после чего добавить его в файл htaccess или index.php. Если сайт работает на WordPress, можно воспользоваться плагинами, например, Simple 301 Redirects или Redirect.
Настройка редиректа при смене домена
В этом случае схема будет похожей, только в программах для генерации кода нужно получить постраничный редирект. Для этого потребуется ввести URL старого и нового сайта, а затем отметь нужные поля. Далее код также нужно добавить в файл htacess или PHP.
Редирект папки
Стандартный код для файла htacess в этом случае будет выглядеть следующим образом:
RedirectMatch 301 ^/ tomaty /(.*)$ / cherry /$1
Как проверить редирект страницы
Самый очевидный способ — проверить выполнение в браузере. Перед проверкой не забудьте очистить кэш. Рекомендуется также зайти в браузер в режиме инкогнито.
Внешний вид сервиса проверки редиректов Redirect Checker
Можно использовать и специальные сервисы, которые помогут избежать этих «заморочек», например:
Заключение
Без умения настройки редиректа в своём арсенале не обойтись ни одному веб-мастеру. Однако для реализации наиболее распространенных типов перенаправления совсем необязательно иметь глубокие знания по данному вопросу. Новичкам помогут специальные сервисы для генерации кода и проверки готовых.
Благодаря «RewriteBase /» удобнее делать преобразования URI (убирается привязка к физическому расположению файлов сайта на сервере).
Давайте рассмотрим самые распространенные примеры:
1. Простой редирект
Для простого редиректа условия задавать не обязательно, только правило.
2. Реврайт без редиректа
Иногда требуется, чтобы был редирект без смены адреса, т.е. реврайт без редиректа. Для этого просто не указываем флаг редирект (R), и получаем желаемый результат, теперь по адресу news/happy получим news.html, а в адресной строке останется news/happy
3. Редирект с сохранением рейтинга страницы
4. Редирект для домена с www.site.com на site.com
Убираем у всех запросов вначале «WWW.»
5. Редирект для домена с site.com на www.site.com
6. Редирект с index.php (html,htm) на главную страницу
7. Редирект с index.html на папку (удаление из строки браузера index.html)
9. Чтобы вместо page.htm загружался файл page.html
10. Переезд с одного домена на другой
11. Редирект всех файлов в папке на один файл
12. Задание типа индексной страницы (php, html, htm и другие)
Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.
13. Убираем у всех запросов в конце index.php. Переадресуем на страницу без index.php
Поисковые системы плохо относятся к дубрям страниц. Чтобы этого избежать нужно удалить (склеить) страницы вида https://ваш_домен/ и https://ваш_домен/index.php
14. Определение кодировки, в которой сервер «отдает» файлы
Варианты: KOI8-R, UTF-8, Windows-1251
15. Определение кодировки на загружаемые файлы
Варианты: KOI8-R, UTF-8, Windows-1251
16. Кэширование для всех типов файлов по времени доступа
17. Кэширование для всех типов файлов по времени изменения
18. Кэширование для определённых типов файлов
19. Главная страница без дублирования
20. Редирект страниц без слэша в конце URL на слеш
Чтобы предотвратить ситуацию с индексированием страниц www.site.com/about и www.site.com/about/ как разных, ставим следущий код: Со страниц без слэша будет установлен редирект на «слэшевые».
21. Принудительная постановка замыкающего слеша
Следующий код всегда будет добавлять слеш в адрес URL вашего сайта, что хорошо помогает в области SEO сайта.
22. Удалить слеш в конце
23. Удаляем «category» из URL
24. Редирект URL страницы с папки в корень сайта
Например страница лежит на сервере в site.com/category/blue.html, но надо чтобы страница работала по запросу site.com/blue.html
25. Редирект от GET параметров
Например, нужно что бы со страницы /?action=page&id=15 был редирект на /page/15/
26. Редирект на мобильную версию сайта
Допустим, что мобильная версия расположена на поддомене m.site.com. Будем переходить на мобильную версию только с главной страницы основного домена.
Первой строкой мы проверяем USER_AGENT, определяем что он относится к мобильникам. (эту строку я детально не проверял, взял на просторе интернета, возможно она не совсем корректная, или есть более универсальная строка. Но на моих мобильных устройствах этот пример работает)
Второй строкой проверяем что мы находимся на нужном домене (т.к. пример не универсальный)
Третьей строкой, мы проверяем, что находимся на главной страницы (без всяких параметров и прочего) и перенаправляем на поддомен.
27. Редирект на мобильную версию сайта (Универсальная версия)
28. Обработка ошибок Apache
29. Сохранение (загрузка) файлов вместо открытия
30. Переадресация с www.site.com/index.php?idc=4&marea=6 на www.site.com/
31. Редирект с поддомена на основной домен второго уровня
32. Изменяем переменные php и передаём обработку другому скрипту.
33. Убираем переменные php из запроса
(вырезаем из URI всё, что находится после знака вопроса)
34. Заперт входа на сайт
Запрещаем вход на сайт Интернет Експлореру (вернее, кто себя так определяет) и пользователям с определённого IP-адреса (xxx.xxx.xxx.xxx).
35. Закрываем от всех
36. Закрываем конкретный файл от всех
37. Разрешаем доступ только с одного ip
38. Запрещаем доступ с конкретных ip
39. Убираем из Урла (URL) расширение файла
php можно заменить другим расширением. Например: html, htm, shtml, asp
41. Запрещаем отображать содержимое директории, если нет индексного файла
Вы скорее всего хоть раз видели текст Index of и список файлов. Так происходит в том случае, когда в директории нет индексного файла (например index.php), а система предлагает выбрать файл для дальнейшего открытия. Минус этого заключается в том, что случайный пользователь может увидеть список и содержание всех файлов директории.
42. Перенаправление с HTTPS на http
43. Редиректы в зависимости от времени
Когда нужно применять уловки типа содержания зависящего от времени масса вебмастеров все ещё используют CGI скрипты которые производят редиректы на специальные страницы. Как это может быть сделано через mod_rewrite?
Есть много переменных названных TIME_xxx для условий редиректа. В связке со специальными лексикографическими образцами для сравнения STRING и =STRING мы можем производить редиректы зависящие от времени:
Это выдает содержимое foo.day.html при запросе URL foo.html с 07:00 до 19:00 а в оставшееся время содержимое foo.night.html.
44. Редирект в URL с подчеркивания в дефис
45. Редирект в URL с больших символов на маленькие
46. Массовый редирект новых файлов
Предположим вы перешли на новую систему ссылок на вашем сайте и все файлы оканчивающиеся на старый id должны быть средирекчены. Сначала создаем в базе таблицу, которая содержит старый id и новый URL для редиректа.
old_id INT new_url VARCHAR (255)