Урок 373 Как сделать 301 редирект в htaccess, как настроить

image

Каждый оптимизатор сталкивается с необходимостью использования 301 редиректа. Часто эта необходимость возникает при изменении адресов страниц, склейке доменов, удалении дублей и решении других задач. В данном руководстве собраны наиболее популярные шаблоны 301 редиректов.

Поскольку веб-сервер Apache является наиболее распространенным, то все шаблоны, приведенные в данной статье, относятся именно к нему, а конкретно — должны прописываться в корневом файле .htaccess. Перед использованием шаблонных 301 редиректов убедитесь в том, что в Apache подключен модуль mod_rewrite (файл httpd.conf).

Для использования 301 редиректа сначала в первых строках файла .htaccess прописываются директивы, необходимые для работы модуля mod_rewrite:

Рассмотрим типичные правила перенаправлений.

Редирект с адреса с www-префиксом на адрес без www

Подобные перенаправления переадресуют все страницы сайта вида http://www.site.com.ua/page.html на страницы http://site.com.ua/page.html. Для такого типа редиректа можно использовать следующий шаблон:

Или же упрощенный вариант:

Редирект с адреса без www на адрес с www

Этот 301 редирект со страниц домена вида http://site.com.ua/page.html на страницы http://www.site.com.ua/page.html делается подобным описанному выше методу, только меняется положение www:

Или альтернативный упрощенный вариант:

Стоит также отметить, что иногда правила работают даже если точки не экранированы с помощью обратного слэша, но не стоит этим злоупотреблять, на некоторых серверах это может привести к ошибке.

Склейка индексной страницы с корнем сайта

Такой тип редиректов часто доставляет проблемы в случае, если используется CMS, перенаправляющая все запросы к сайту на индексную страницу. Добавление директивы в .htaccess файл тогда приведет к циклу бесконечных перенаправлений. Самым простым выходом из ситуации будет вставка небольшого фрагмента кода в начало индексной страницы (например index.php):

if($_SERVER[‘REQUEST_URI’] == «/index.php») {

}

Таким образом, при обращении к индексной странице сравнивается, если запрошенный адрес равен, к примеру, http://site.ua/index.php, то условие срабатывает и происходит переадресация на корень сайта http://site.ua/. Если сайт не перенаправляет все запросы на index.php можно воспользоваться следующим шаблоном для mod_rewrite:

Такой же редирект может использоваться и для других расширений главной страницы, таких как index.html, или например index.phtml.

Редирект с поддомена на подпапку

Такая разновидность 301 редиректа нужна для перенаправления многочисленных однотипных страниц с поддомена на новые адреса, имеющие определенный шаблон. Такая задача часто возникает, например, когда другая языковая версия сайта доступна на поддомене и в подпапке основного домена.

Пусть, к примеру, есть страница с адресом http://eng.site.com.ua/page.html и нам нужно склеить ее с дублирующей страницей http://site.com.ua/eng/page.html. Используем для этого следующий шаблон (прописывается для .htaccess файла поддомена):

Редирект с подпапки домена на поддомен

Если необходимо наоборот, перенаправить пользователя с подпапки на поддомен, то используйте следующий шаблон:

Редирект с одних расширений файлов на другие

При смене движка либо при переходе со статической версии сайта на динамическую следует оставить доступность страниц по старым адресам. Для этого старые адреса страниц необходимо направить на страницы с новым расширением.

RewriteRule ^(.*).html$ $1.php [R=301,L]

Редирект на другой сайт

Создавая новый сайт, бывает необходимость сделать его основным зеркалом, перенаправляя пользователей со старого домена на новый. Для этого можно использовать шаблон приведенный ниже.

Все страницы старого домена будут перенаправлены на соответствующие страницы нового.

301 Редирект динамических страниц

При модернизации динамического сайта и создании ЧПУ-адресов часто возникает необходимость перенаправить старые страницы с параметрами ID на новые с ЧПУ. Например, чтобы переадресовать страницу вида http://site.com.ua/page.php?id=13 на новую страницу http://site.com.ua/newname.html, используется следующая конструкция:

Редиректы кириллических и .рф доменов

Все описанные выше правила справедливы и для доменов написанных кириллицей. Однако, при создании перенаправлений кириллические домены лучше заменять так называемым Punycode. Для этого можно воспользоваться одним из онлайн-сервисов конвертации WhiteWhois.

Полученное закодированное доменное имя можно легко использовать для любого шаблона 301 редиректа, описанного выше.

Несмотря на обилие различных шаблонов и готовых решений, лучшим решением является самостоятельное освоение принципов работы mod_rewrite и синтаксиса его директив. Понимание базовых конструкций позволит с легкостью писать свои редиректы, а также читать и исправлять существующие .htaccess файлы.

Сценариев применения 301 редиректа есть множество. Частным случаем является редирект с домена на домен Для каких целей используется? Как реализовать? Разберемся с вопросами далее.

Продвижение 301 редиректами

Редиректом называется процесс автоматической переадресации с одной страницы на другую. image Практически нет сайтов без редиректов. Сценариев при которых следует использовать много. Например:

  • 301 редирект с http на https;
  • 301 постраничный редирект c www на без www;
  • 301 редирект на новый домен.

Редиректы эффективны, поскольку учитываются поисковыми алгоритмами. Как и по ссылке, по 301 редиректу передается статический вес. Больше значение ссылочного веса — выше позиции. В Google ссылочный вес учитывается алгоритмом PageRank. В Яндекс для учета веса используется алгоритм Яндекс ИКС. Итак, по 301 редиректу передается ссылочный вес. Значит, если разместить редиректы со сторонних доменных имен на домен продвигаемого сайта, то можно улучшить позиции продвигаемого сайта. Что конкретно надо делать? Разберемся с деталями далее.

301 редиректом с домена на домен

Метод продвижения 301 редиректами состоит из простых и понятных этапов. Порядок следующий:

  • Поиск доменных имен, с которых имеет смысл поставить редирект;
  • Регистрация доменных имен, без покупки хостинга;
  • Настройка 301 редиректов на страницы тестовые или конкурентных сайтов;
  • Аналитика влияния на ранжирование;
  • Настройка редиректов на продвигаемый сайт.

1 — Поиск удаленных доменных имен

Сначала следует выбрать подходящие доменные имена. Подбирать следует по таким параметрами:

  • Тематика доменного имени близка с тематикой продвигаемого сайта;
  • Наличие качественных внешних ссылок.

Где найти такие доменные имена? Использовать списки освободившихся доменных имен. Обычно такие сервисы являются платными, поскольку требуются затраты на создание проекта, регулярные обновления, поддержку инфраструктуры. Но в MegaIndex такие инструменты предоставляются бесплатно. Ссылка на сервис для поиска удаленных доменных имен, так называемых drop domain names — Удаленные домены. Ссылка на сервис для поиска освобождающихся доменных имен, expired domain names — Освобождающиеся домены. Рекомендованный материал по использованию инструментов для поиска доменных имен — Освобождающиеся и свободные дроп домены — БЕСПЛАТНО.

2 — Регистрация доменного имени

Регистрировать доменные имена лучше у надежных регистраторов с поддержкой Privacy Whois и аккредитацией ICANN. Ссылка на сайт регистратора с аккредитацией ICANN — reg.com.

3 — Настройка 301 редиректа на тестовые или конкурентные сайты

Если доменные имена выбраны согласно описанным критериям, то после редиректа следует ожидать улучшения в ранжировании. Но! Иногда доменные имена могут снизить позиции сайту. Как проверить, чтобы не навредить? Выполняем настройку редиректов на тестовые или конкурентные сайты.

4 — Аналитика влияния на ранжирование

Анализируем результат через мониторинг позиций.

5 — Настройка редиректа на продвигаемый сайт

Если позиции тестового или конкурентного сайта показали положительную динамику роста в поисковой выдачи, значит доменные имена следует использовать для продвижения своего сайта. Если позиции снизились, то убрать редирект или так и оставить.

Дополнительно: Скрытие редиректов от систем поисковой аналитики

Доменные имена с редиректами следует закрывать от сканирования сервисами, предназначенными для поисковой оптимизации: SEMrush, Ahrefs, Moz, Majestic, SERPstat. Надежно закрывать на уровне сервера. Пример скрипта для блокировки опубликован на сайте indexoid.

Дополнительно: Скрытие признаков аффилированности

Известно, что поисковые системы используют признак IP сервера для выявления аффилированных проектов. Если разместить множество доменных имен на хостинге или виртуальном севере без специальных настроек, то у доменных имен будет общий IP. Использование 301-редиректа на уровне сервиса обратного прокси позволяет использовать разные IP бесплатно. IP-адрес записывается так A.B.C.D. Отличия по цифре D недостаточно. IP-адреса для сателлитов должны быть разными, как минимум, на уровне C класса. С целью сокрытия аффилированности рекомендуется использовать сервера с разными IP по подсетям класса C. Как создать редирект сразу после регистрации доменного имени?

301 редирект с домена на домен

Обычно 301 редирект создается путем указания директивы в файле .htaccess. Например, так: В примере прописано правило для автоматической переадресации с wixfy.ru на wixfy.com. Но файл директив надо размещать на хостинге. Хостинг является дополнительным источником затрат. Получается так:

  • Доменных имен надо много;
  • IP надо разные.

Итого затраты растут с каждым доменным именем. Есть ли способ сделать редирект без хостинга? Есть способ, о котором мало кто знает. Разберемся с подробностями далее.

Как создать 301 редирект без хостинга

Есть вариант установить редирект через сервисы обратного прокси для сайта. Такие сервера бесплатно предоставляются регистраторами. Только перечень настроек обычно скудный. Но доменные имена можно запарковать на сторонних сервисах, таких как CloudFlare. Для понимания процесса разберемся на примере.

Пример установки редиректа с домена на домен без хостинга

В качестве примера было выбрано доменное имя megaindeks.ru. Задача заключается в создании 301 редиректа с megaindeks.ru на megaindex.com через сервер доменных имен, то есть без использования хостинга. Порядок работ:

  • Регистрация доменного имени на сайте reg.com;
  • Смена серверов доменного имени на сервера CloudFlare;
  • Создание правила 301-редиректа на уровне сервиса обратного прокси для сайта.

С регистрацией доменного имени проблем быть не должно. После регистрации доменное имя следует добавить в сервис CloudFlare. Сервис бесплатно предоставляет основной и резервный серверы доменных имен. Адреса предоставленных серверов следует вписать в настройках доменного имени на сайте регистратора. Как указать нужные сервера? Порядок:

  • Открываем на сайте регистратора reg.com раздел «Мои домены». Затем нажимаем на доменное имя. Далее в списке «Управление доменом» выбираем «DNS-серверы»;
  • Меняем адреса на серверы доменных имени CloudFlare.

Пример: Далее переходим на сайт CloudFlare. Порядок действий выполняем следующий:

  • Заходим в настройки доменного имени;
  • Переходим в раздел Rules;
  • Нажимаем Create Page Rule;
  • Задаем настройки Forwarding URL, статус 301 — Permanent Redirect;
  • Прописываем адрес, куда должен вести редирект.

В бесплатной версии доступно к использованию 3 правила. Для редиректа достаточно 1 правила. В результате все обходится бесплатно Пример правила: Правило настроено для 301 редиректа с доменного имени megaindeks.ru на доменное имя ru.megaindex.com. Что означают специальные символы? Такие символы позволяют задавать гибкие настройки редиректа. * — задает параметры, использование которых позволяет охватить множество URL. Например: Включает: $1 позволяет указать директиву постраничного редиректа. Экономика процесса:

  • Выбор доменных имен через MegaIndex — бесплатно;
  • Регистрация доменного имени — до 200 рублей, если в зоне ru;
  • Использование стороннего DNS сервера — бесплатно;
  • Установка редиректа — бесплатно;
  • Продвижение сайта в поисковой выдаче — бесценно.

Выводы

Редиректы используются на всех сайтах, которые оптимизированы под поисковые системы. Большинство способов по установке редиректа заключается в использовании директив на уровне веб-сервера. Минус способа заключается в лишних затратах на хостинг. Есть способ избавиться от лишних затрат. Мало кто знает, есть способ настроить 301 редирект через сервер доменных имен. Такой способ является полностью бесплатным. MegaIndex предоставляет поиск свободных доменных имен бесплатно. CloudFlare бесплатно предоставляет сервера доменных имен. Опция настройки редиректа подключается также бесплатно. Алгоритм действий расписан выше. После настройки редиректов следует определить влияние передаваемых сигналов от доменных имен на позиции продвигаемого сайта в поисковой выдаче. Плохие доменные имена следует исключить из работы. Хорошие доменные имена следует направить на продвигаемый сайт. Продвижение 301 редиректом является простым и минимальным по затратам способом продвижения сайтов в поисковых системах. Если есть вопросы по теме, напишите в комментариях. Предлагайте темы материалов, которые следовало бы осветить в блоге.

Периодически, к нам обращаются наши клиенты, с вопросом, как сделать переадресацию сайта с одного домена на другой. Как правило, этот вопрос задают в двух вариантах:

  • сайт открывается по 2 адресам: www.mysite.ua и mysite.ua (для поисковых машин это существенная разница и они воспринимают 2 адреса, как 2 разных сайта), поэтому необходимо сделать чтобы при обращении к страницам сайта с www, шла переадресация на такие же страницы сайт без www, например с http://mysite.ua/news/ на http://www.mysite.ua/news/ (или наоборот).

  • у вас есть несколько доменов, основной mysite.ua и альтернативный my-site.ua и/или кириллический мойсайт.укр. Необходимо, чтобы при наборе в браузере адреса my-site.ua и/или мойсайт.укр посетитель автоматически перенаправился на сайт mysite.ua.

1. Перенаправление домена в файле .htaccess.

1.1. С www-домена на основной домен

Если на вашем сервере включен модуль mod_rewrite, то того, чтобы настроить переадресацию с адресов, начинающихся с www на аналогичные без www, нужно в файле .htaccess,в корневой папке wwwвашего сайта прописать следующие строки:

RewriteEngine On RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

1.2. С основного домена на www-домен

RewriteEngine On RewriteCond %{HTTP_HOST} !^(www.) [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

1.3. С одного домена на другой

Задача может быть решена так же как и первая, для настройки перенаправления посетителей с одного доменногоdomain1.uaимени на другое domain2.uaвы можете использовать соответствующие директивы в файле .htaccess.

Сделать на старом домене domain1.uaфайл .htaccess, с содержанием:

RewriteEngine On RewriteCond %{HTTP_HOST} domain1.ua RewriteRule (.*) http://domain2.ua/$1 [R=301,L]

1.4. Перенаправление с нескольких доменов

Необходимо сделать переадрессацию с доменов domain1.ua и www.domain1.ua на новый домен domain2.ua, для это впишите:

RewriteCond %{HTTP_HOST} ^domaim1.ua RewriteRule ^(.*)$ http://domain2.ua/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.domain1.ua RewriteRule ^(.*)$ http://domain2.ua/$1 [R=301,L]

Аналогично можно делать перенапрвление с domain.ua на domain.com и т. п.

Однако если вы размещаетесь на тарифном плане с ограниченным числом доменов, включенных в тариф, то настройка сайта с одним только файлом .htaccess лишит вас еще одного домена в квоте по тарифу, что не всегда приемлемо. В этом случае можно воспользоваться специальным сервисом панели управления хостингом.

2. Перенаправление домена в панели управления хостингом

На примере панели управления «cPanel»

Вы можете выбрать варианты перенаправления – 301 или 302.

301 редирект — это постоянное перенаправление. Т.е. при установке 301 редиректа всем, в том числе поисковым машинам, будет сообщено, что запрашиваемая страница навсегда «переехала» на новый адрес. Такое перенаправление необходимо, например, при переезде с одного доменного имени на другое. Таким образом, вы не потеряете поисковый трафик, а поисковые машины будут оповещены о смене адреса.

302 редирект — это временное перенаправление. Таким образом, пользователи, вызывая страницу, на которую установлен 302 редирект, будут получать ответ с указанного в редиректе адреса. Однако в поисковых машинах прежний адрес останется и будет удерживать свои позиции.

Также, можно выбрать опции перенаправления, связанные с синонимом сайта с www. Обратите внимание, что переадресацию с домена http://www.site.ua/ на http://site.ua/ средствами cPanel сделать не удастся. Подобный редирект создается с помощью файла .htaccess.

Управление перенаправлением выглядит довольно стандартно. Вы можете удалить созданный параметр:

3. Перенапрвленеи кирилличнский доменов

Переадрессация кириилических доменов ничем не отличается от обычного (на латинице). Просто необходимо использовать конвертер punycode .

Punycode– это метод преобразования символов, относящихся к стандарту Unicode, в последовательность символов, содержащих только символы в кодировке ASCII, а именно 26 букв латинского алфавита (a-z), цифры (0-9) и символ дефиса (всего 37 символов).

Домены, содержащие символы национальных алфавитов называют IDN-доменами. Некоторые сервисы не поддерживают IDN представление доменов. Поэтому не работает домен УКР или другие IDN-домены. В таком случае необходимо использовать имя домена после Punycode-конвертации.

Например, домен http://мойсайт.укр/ после кодирования (можно воспользоваться сервисом http://wwhois.ru/punycode.php) становится http://xn--80arbjktj.xn--j1amh/, его-то мы и вписываем в уже знакомый код

RewriteEngine On RewriteCond %{HTTP_HOST} http://xn--80arbjktj.xn--j1amh/ RewriteRule (.*) http://domain2.ua/$1 [R=301,L]    

или в соответствующую строку в панели управления.

Сен 25, 2014 — Полезно знать, Разное    34 комментария

Как сделать редирект с домена не платя деньги за хостинг

Сегодня столкнулся с такой проблемой — у меня есть два домена, на которые почти нет трафика, а они занимают место на хостинге.

В общем-то вывод очевидный, отвязать домены от хостинга, а хостинг пустить на более полезные проекты.

Но тут начинает душить жаба — домены-то проплачены до лета 15 года, получится, что триста рублей выбрасываю, да и на эти домены десяток-другой человек в месяц ходит, тоже жалко трафик терять.

Задача стоит предельно ясная — как сделать редирект для голых доменов без хостинга.

Всякие редиректы через .htaccess и прочие яваскрипты не подходят, т.к. для них нужен хостинг, а хостинга-то и нет.

В общем, наткнулся я в англоязычном интернете на такой сервис (может быть,  кто-то из вас его раньше использовал), который предоставляет бесплатные DNS, причем с возможностью  Web-Forward (т.е. редиректа), по адресу 

На главной странице сервиса нажмите Sigh Up! и зарегистрируйтесь.

Для регистрации введите Ваши имя и фамилию, придумайте UserID, пароль, и введите существующий e-mail (на него будет выслана ссылка для активации).

После того, как все заполните, введите графический код и нажмите кнопку «Send activation email»

После чего Вам на почту будет отправлено активационное письмо.

Зайдите в почту, откройте письмо и нажмите на активационную ссылку.

В результате Ваш аккаунт будет активирован и можно приступать к работе.

Выберите пункт меню Domains и нажмите на ссылку «Add a domain into FreeDNS».

Затем выберите имя Вашего домена и нажмите Submit

Домен будет добавлен со статусом BROKEN.

В списке доменов этот домен будет фигурировать со статусом Broken пока на обновятся адреса DNS, которые надо прописать у регистратора домена (смотрите два предпоследних скриншота в конце данного поста).

После добавления домена зайдите в раздел Subdomains (в левом меню), и удалите все поддомены, которые «Not Yet Configured».

Затем откройте раздел Web Forward (в левом меню), и добавьте перенаправление, нажав Add a Web Forward.

.

В добавившемся перенаправлении мы не можем по умолчанию выбрать наш домен.

Поэтому сначала выберите пункт Many many more available

Потом нажмите на ссылку Account Preferences

Выберите опцию Show My Domains only

И нажмите кнопку Update

Затем снова откройте раздел Web Forward (в левом меню), и добавьте перенаправление, нажав Add a Web Forward.

В списке Redirect From выберите Ваш домен, после https:// оставьте пустое поле.

В поле Redirect To укажите, на какой адрес должны перенаправляться посетители со старого домена.

Можно поставить галочку Cloak?, тогда адрес, на который перенаправляется посетитель, будет скрыт в адресной строке браузера.

Можно даже заголовок страницы указать, но только вот русские буквы квакозябрами отображаются.

После заполнения полей нажмите кнопку save .

Будет создан редирект с нашего домена на новый.

Осталось в панели управления регистратора домена зайти в раздел Управление ДНС серверами/Делегирование.

И в этом разделе прописать

Теперь надо подождать обновления DNS, это занимает до 24 часов (у меня все заработало за 2,5 часа).

После того, как DNS обновятся, статус домена изменится на «Health: Active»

и наш редирект начнет работать.

  Метки: Бесплатные DNS с Web Forward   admin   Просмотров: 33 782   Запись опубликована в 23:15

Как сделать автоматическое перенаправление, редирект с Blogger-блога на другой сайт?

Об этом, наверное всё уже всё знают, но для полноты надо упомянуть. И должен кое о чём предупредить. Дело в том, что если сайт навсегда переезжает на новое место — то необходимо ставить редирект 301. Этот редирект хорош тем, что весь имеющийся вес (ТИЦ, PR) «перетекает» со старого места на новое. 301 редирект — это редирект, который говорит поисковым машинам о том, что сайт переехал на новое место навсегда. Именно такой редирект ставится, к примеру, тогда, когда вы переезжаете со старого адреса, вида блаблабла.blogspot.com, на собственный домен. Но просто так, самостоятельно, сделать редирект такого в блоггере нельзя (насколько я знаю). Поэтому, когда будете ставить нижеследующие редиректы — знайте, что блог с которого идёт перенаправление поисковики занижают в выдаче; так что если переезжаете — не планируйте вернуться на старое место. К тому сайту на который идёт перенаправление вроде никаких претензий нет: во всяком случае у меня одно время стоял редирект с одного блога на другой, и всё было в порядке. Чтоб сделать редирект со своего Blogger-блога на другой сайт надо вставить код после тега (он находится почти в самом верху кода). Есть три известных мне способа. Один — через HTML, другие  два — через Javascript. После слов «meta content» можно изменить число с нуля на какое-нибудь другое. Это число — задержка (в секундах) перед перенаправлением. Может пригодиться, к примеру, для того, чтобы написать на старом сайте что-нибудь вроде «Мы переехали, сейчас вы автоматически будете перенаправлены на новое место«, — чтобы пользователь понял что всё идёт своим чередом. Способы с Javascript. Точно так же, после тега «хед»: Перенаправляет сразу, задержку сделать низя. И, наконец, как мне кажется, самый удобный способ: в нём пользователь должен будет подтвердить то, что он будет перенаправлен. Способы взял отсюда.

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Максим Коновалов
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий