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

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

Как сделать редирект на другой сайт

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

  1. Настройка постраничного редиректа со старого на новый домен. Редирект прописывается в файле htaccess (корневая директория сайта на сервере) старого сайта. Вот сама директива:

  2. После настройки основного редиректа, рекомендуется вручную проверить корректность перенаправления страниц. Сделать это несложно при помощи программы Netpeak Spider (скачать программу). После установки программы, запустите ее, и введите адрес старого сайта в строку поиска. Далее, выберите тип сканирования — по Google, и запустите сканирование. Если редирект со старого на новый домен осуществлен корректно, все найденные страницы будут отдавать код 301 (Moved Permanently).
  3. Далее, необходимо проверить корректность работы всех страниц с новым доменом. Для этого, используя ту же программу (Netpeak Spider), проверьте коды ответа страниц. Учтите, что теперь проверку делайте по сайту, а не по Google, как в предыдущем пункте.
  4. В течении 1-2 месяца после склейки, страницы старого сайта полностью выпадут из индекса и их место займут новые страницы. Поэтому, примерно через 2 месяца следует просмотреть выдачу поисковиков по новому сайту, и сопоставить данные с показателями до перенаправления. Если данные количества страниц и позиции по запросам примерно одинаковые (запросы могут просесть на некоторое время) — все сделано правильно. Также, рекомендую отслеживать количество 404-х ошибок в панели вебмастера.

Фактически, это все, что требуется сделать для склейки доменов. Однако, описанный выше способ не подойдет, если меняется не только домен, но и внутренняя структура сайта. Тогда придется придумывать костыли. Возможно, часть страниц получится перенаправить при помощи редиректов сложного перенаправления, остальные страницы придется перенаправлять вручную, при помощи директивы Redirect 301. Например, если есть старая страница siteold.com/page-old и ее надо перенаправить на страницу нового домена sitenew.com/page-new, то редирект будет выглядеть так:


Приписывать подобные редиректы необходимо в файле .htaccess старого сайта. 

Особенности склейки доменов для Google и Яндекс

Как я писал выше, в целом процесс склейки более чем простой. Тем не менее, существуют некоторые нюансы. Например, для более быстрой склейки сайта в Google необходимо провести некоторые манипуляции в панели вебмастера (Google Webmaster Tools). Зайдите на страницу старого сайта в GWT, в правом верхнем углу кликните по шестеренке, выберите пункт «Изменение адреса», и следуя инструкции, составьте запрос на изменение адреса. Я встречал информацию, что такие действия, при условии правильного перенаправления страниц, сайт может склеиться в течение недели.3 Osobennosti-sklejki-domenov

Для Яндекса специальных «фич» нет. Но хотелось бы упомянуть об одном моменте. В официальной инструкции поисковика по склейке сайтов упоминается два варианта, как это можно сделать.
рвый способ — редирект на другой сайт, второй — прописывание нового зеркала в директиве Host (robots.txt). Второй способ мало того, что не универсален, так еще и займет гораздо больше времени. Некоторые специалисты рекомендуют сочетать оба варианта и исключать роботс на старом сайте из редиректов. Скажу сразу — делать это ни к чему, вполне достаточно 301-го редиректа, но пример директивы htaccess все же приведу.

Данное правило не даст перенаправляться файлу robots.txt, в котором и будет прописан Host. Еще раз напомню, делать это абсолютно незачем, я просто навел пример и объяснил, почему делать этого не надо.

sky-fi.info

Настройка домена

В услугу «Перенаправление домена» уже включена поддержка DNS. Если услуга заказывается на тот же договор, что и домен, то при заказе настройки производятся автоматически.

Также вы можете самостоятельно указать DNS-серверы в зависимости от уровня домена, для которого заказана услуга перенаправления:

  • для домена второго уровня, вида web-forward.ru:
  • для домена третьего уровня, вида test.web-forward.ru:
  • для домена четвертого уровня, вида forum.eng.web-forward.ru:
  • для домена пятого уровня, вида www.forum.eng.web-forward.ru:

Записи в файл зоны

Если вы используете DNS-сервера, включенные в услугу «Перенаправление домена», то необходимые записи вносятся автоматически.

При использовании своих DNS-серверов нужно внести в файл зоны домена на первичном DNS-сервере (primary) записи A. В рамках одной услуги перенаправления для самого домена и любого из его поддоменов необходимо указывать один и тот же IP-адрес.

В зависимости от уровня домена, для которого заказана услуга перенаправления, записи A должны быть следующими:

  • для домена второго уровня, вида web-forward.ru:
  • для домена третьего уровня, вида test.web-forward.ru:
  • для домена четвертого уровня, вида forum.eng.web-forward.ru:
  • для домена пятого уровня, вида www.forum.eng.web-forward.ru:

Настройка услуги «Перенаправление домена»

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

Внести изменения в настройки услуги вы можете в Разделе для клиентов → Услуги Просмотр и изменение данных.

Для каждого правила перенаправления можно указать следующие параметры:

1. Имя поддомена, для которого настраивается правило

Необходимо указать поддомен, с которого будет осуществлено перенаправление. Можно указывать:


  • имя поддомена, для которого требуется настроить перенаправление. Допускается неограниченное количество уровней вложенности, но при этом длина записи, включая точки, не должна превышать 63 символа;
  • «*» (звездочку), если необходимо задать общее правило перенаправления. Такое правило будет действовать для любых поддоменов, для которых не настроены индивидуальные правила.

2. Адрес перенаправления

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

3. Способ перенаправления

Вы можете выбрать один из следующих способов перенаправления:

  • Временное или постоянное перенаправление

Временное перенаправление (код HTTP ответа «302 Moved Temporarily»). Код ответа HTTP 302 сообщает клиентским приложениям (в том числе поисковым системам), что сайт перемещен временно. Устанавливается по умолчанию.

Постоянное перенаправление (код HTTP ответа «301 Moved Permanently»). Код ответа HTTP 301 говорит клиентским приложениям (в том числе поисковым системам), что сайт перемещен навсегда.

В обоих случаях посетитель автоматически переходит на URL той страницы, на которую было осуществлено перенаправление. Выбор способа перенаправления (301, 302) на практике имеет значение только для поисковых систем.

  • Маскировка адреса во фрейме

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

Если вы выбрали маскировку адреса во фрейме, то следует учитывать, что:

  • при установке ссылок внутри вашей веб-страницы на другие ресурсы, в теге ссылки необходимо указать target=_top. В противном случае чужая веб-страница также будет открыта внутри вашего фрейма, и посетитель будет видеть в окошке URL ваше доменное имя. Пример правильного написания ссылки для этого случая: <a href="https://www.nic.ru/" target="_top">RU-CENTER</a>
  • истинный адрес веб-страницы, на которую осуществляется перенаправление, хотя и не отображается в строке URL, может быть легко вычислен любым посетителем.

4. Опция «С сохранением пути».

При попытке обратиться к странице, размещенной на домене, для которого составляется правило, перенаправление произойдет на адрес перенаправления, к которому будет добавлен путь до этой страницы. Например, если адрес перенаправления задан в виде: nic.ru, а правило перенаправления составлено для домена dns.web-forward.ru, то при обращении к странице dns.web-forward.ru/dns/ пользователь будет перенаправлен на nic.ru/dns/.


www.nic.ru

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

этой статье. Только если Вы уверены в работоспособности и доступности сайта для поисковых роботов на новом домене, можно приступать к дальнейшим действиям.

Перенаправление с одного домена на другой в .htaccess

Существует достаточно много вариантов решения поставленной задачи. Лично я рекомендую использовать вот такой вариант?

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^(www.)?old-domain.ru$
RewriteRule ^(.*)$ http://www.new-domain.ru/$1 [R=301,L]
</IfModule>


Чем хорош данный вариант? Во первых, он исключает из редиректа на старом домене файлrobots.txt, что позволяет задать в нём директиву Host с указанием нового домена. Это работает только для поисковой системы Яндекс, подробней читайте тут. Я же отмечу, что директива Host может быть указана где угодно, но лучше будет указать её так:

User-agent: Yandex
Disallow: /cgi-bin
Host: www.new-domain.ru

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

Очевидно и то, что для работы приведенного примера редиректа необходимо указать своидомены. Обращаю ваше внимание на то, что в регулярном выражении директивы RewriteCond необходимо экранировать спецсимволы, тот же символ точки (.), например: old-domain.ru, в то время как для нового домена в этом нет необходимости, но нужно начинать именно с HTTP-протокола, т.е. http:// и т.д.

К слову, новый домен можно указать и без www. в начале, но тут не забывайте о главном зеркале.

Дополнительные рекомендации

Рекомендация 1: Ещё до установки редиректа можно использовать директиву Host для Яндекс и метатег canonical для Google, а также файл sitemap.xml с URL-адресами страниц на новом домене; дождаться склейки и только тогда ставить редирект.


Примечание: Проверить склейку в Яндекс можно путём добавлении не главного зеркала(старого домена) в форму Сообщить о новом сайте, она возвращает соответствующее сообщение: Указанный вами сайт является неглавным зеркалом сайта…

В Google для этого можно использовать поисковый оператор запросов info:, указав в качестве значения старый домен, например: info:eek:ld-domain.ru.

Также Вы можете использовать и ряд онлайн сервисов, например: проверка домена на склейку от SEOGadget, проверка склейки на webmasters.ru и т.д.

С моей точки зрения лучше сразу ставить 301 редирект с исключением файла robots.txt, что избавит нас от лишних телодвижений и проблем с дублями.

Рекомендация 2: зарегистрируйте сайт на новом домене в Яндекс.Вебмастер и Google инструменте для веб-мастеров, не удаляя сайт на старом домене.

Рекомендация 3: используйте инструмент «Изменение адреса» в Google инструменте для веб-мастеров, чтобы сообщить Google о новом домене сайта. Для этого должен быть добавлен и подтверждён сайт на старом домене. Выбираем его в списке. На открывшейся странице кликаем список с иконкой в виде шестеренки, а потом пункт «Изменение адреса».

[​IMG]


Рекомендация 4: будет не лишним создать файл sitemap.xml на новом домене и добавить его в Яндекс.Вебмастер и Google инструменты для веб-мастеров.

Рекомендация 5: внимательно следите за сообщениями сервисов для вебмастеров. В частности, особый интерес могут представлять отчёты:

  • Индексирование сайта > Исключенные страницы – в Яндекс.Вебмастер.
  • Сканирование > Ошибки сканирования (вкладка «Не найдено») – в Google инструментах для веб-мастеров.

На этом у меня всё. Спасибо за внимание. Удачи!

Материал взят с сайта http://www.chuvyr.ru/

needworld.ru

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

Я расскажу как сделать переадресацию тремя способами . С помощью HTML , PHP и файла .htaccess .

Способ HTML :

В файле «index.html» в блоке «< HEAD >» пропишите такой код :

< meta http-equiv="REFRESH" CONTENT="0; URL=http://Ваш новый сайт.ru" >

Где «CONTENT» время через которое произойдет переадресация , «URL» адрес на который будет переадресован посетитель .

Способ PHP

В файл «index.php» вставте следующий код :

Header("HTTP/1.1 301 Moved Permanently")Header("Location: http://Ваш новый сайт.ru/");exit;

Код редиректа 301 , указывает браузеру и поисковым роботам , что страница постоянно перемещена по новому адресу .

При помощи файла .htaccess

Если Ваш хостер использует сервер Apache , а таких подавляющее большинство . Вы можете воспользоватсья файлом .htaccess . В этом файле Вы можете прописать управляющие директивы для веб сервера Apache . Создайте в корневой папке Вашего сайта файл «.htaccess» . Внимательнее с названием файла , начинается с точки и не имеет расширения. И пропишите в этом файле такой код :

Redirect 301 / http://Ваш новый сайт.ru/

Как видите директива использует уже знакомый нам код редиректа 301 . Указывающий браузеру , что страница перемещена постоянно . Если Вы хотите чтобы при редиректе сохранялись ссылки . Например , «site.ru/abrakadabra.html» перенаправилась на «new_site.ru/abrakadabra.html» . Можно воспользоваться более мощной директивой с использованием mod_rewrite . mod_rewrite — это модуль для URL преобразований сервера Arache :

Options +FollowSymLinksRewriteEngine onRewriteRule (.*) http://php.test/$1 [R=301,L]

midav.ru

Что такое редирект?

301 редирект представляет собой переадресацию с одного сайта на другой.

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

Сам htaccess 301 redirect необходим, программисту и вебдизанеру, чтобы с одного поддомена он мог перейти в другой. Так, например, нередки случаи, когда хороший и качественный сайт внезапно попадает под фильтры «поисковиков». В то же время, те читатели интернет – ресурса, который хранят его в своих закладках поисковых систем или же имеют подписку на rss новости, набирая уже имеющийся у них адрес, переходят на «фильтрованный» сайт.

Фильтрованный сайт

Помимо этого, redirect используется, чтобы имея основной проект, повысить его рейтинг в поисковых системах, а купив новый «продвинутый»  домен и произведя переадресацию на свой собственный интернет – ресурс. Таким образом, увеличивается и рейтинг вашего портала.

Ну и наконец, редирект нужно использовать, для перехода с бесплатного хостинга на его платный эквивалент.

Как сделать редирект 301?

Чтобы произвести редирект следует найти файл htaccess в корневой папке (корневой называется та папка, где расположен ваш сайт).  Обычно это серверные папки, в которые можно войти через ftp типа www, domains, либо /public_html или HTDOCS. Далее, чтобы перейти с сайта на сайт, необходимо написать код (или скопировав, вставить его)

Redirect 301 /старая-страница.html http://новый-домен.ru/новая-страница.html
или
Redirect permanent /старая-страница.html http://новый-домен.ru/новая-страница.html

Можно также воспользоваться и еще одним редиректом, для того, чтобы не добавлять ссылки для адресов в htaccess

RedirectMatch /(.*).php$ /$1.aspx

Чтобы Ваш читатель был перенаправлен с сайта на другой, следует использовать следующую запись:

Redirect / http://www.домен.com

301 редирект с домена с www на без выглядит так:

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

301 редирект с домена без www на с www:

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

Чтобы переадресовывать кириллические домены, необходимо воспользоваться конвертером punucod. Для этого, уже имеющийся у вас адрес (например президент.рф) при помощи сервиса http://wwhois.ru/punycode.php (введя сайт) необходимо изменить на www.xn--d1abbgf6aiiy.xn--p1ai.

Сервис punycode

Опытные программисты могут сделать и переадресацию домена на веб адрес – DNS web direct. Но это уже более высокий уровень.

В качестве примера, попробуйте самостоятельно сделать переадресацию следующих доменов http://2domains.ru/, http://timeweb.com,  https://www.nic.ru.

Очень удобно воспользоваться услугой переадресации доменов http://2domains.ru/. Она позволяет не только перенаправить ваш домен на другой адрес, но, также иметь не изменяемый адрес вашей страницы без хостинга и смены провайдера. Также, вы можете воспользоваться данной услугой, чтобы зарегистрировать дополнительный домен.

Владея одной страницей, например mypage, вы можете приобрести полное доменное имя на основном разделе сайта www.mypage.ru/mybrand/index.html. Это позволяет делать прямую рекламу интернет — ресурса, а читатели будут напрямую указывать адрес веб-страницы вашего ресурса и находить целевую страницу!

Кроме того, применяя услугу множественного перенаправления, просто производить редирект с одного сайта на другие при необходимости.

Можно и самостоятельно придумывать способы применения редиректа. Это очень удобно и просто! Стоит только попробовать! Попытайтесь!

На сегодня все. Подписывайтесь на обновления. Жду ваших комментариев, до встречи в следующем блоге! Пока-пока.

С уважением, Роман Чуешов

romanchueshov.ru

Почему так важно, что бы сайт был склеен, точнее домен?

Дело в том, что поисковые машины (вроде Яндекс и Google) видят не один сайт, а два. Поясняю:

Допустим, у меня есть домен seregakolt.com, и поисковики видят их два.

— первый seregakolt.com

— второй www.seregakolt.com

Т.е. один и тот же сайт с www и без — поисковыми системами воспринимается их как два различных ресурса.

Какие у этого могут быть последствия? Да самые что ни на есть печальные!

Когда на ваш ресурс будут ставить ссылки – они могут быть как с www так и без, в названии домена. И, в принципе, человек, который будет проходить по ним все равно попадет на ваш сайт.

Но что касается поисковиков – они будут воспринимать их как ссылки на разные сайты и вы будете просто терять часть ссылок! Т.е. часть PR и ТИЦ будут переходить на другой домен.

Получается, что если вы будете раскручивать сайт без www – а поисковая система первым нашла сайт с www, то сайт без www будет восприниматься как дубликат – и все ваши старания будут напрасны, так как он просто выпадет из рейтинга!!!

Таким образом вы будете терять посетителей!

Естественно, когда вы склеите свой домен, все ссылки будут приводить на один сайт, с www – либо без. Как вы уже сами выберете. И поисковая система будет воспринимать все как один сайт, сохраняя его авторитет.

Я знаю, что это чистой воды тупость, но уж так устроены наши поисковики, а раз они приводят львиную долю посетителей – значит, их привередливый характер и бестолковые заскоки нужно учитывать и относиться к ним серьезно!

Как работает 301 редирект и склейка доменов?

Все банально просто – поисковикам указывается главное зеркало и они вес ссылок переводят на его!

Причем склеить можно абсолютно разные домены! Т.е. если у вас сайт был раньше на одном домене, и вы хотите его перевести на другой, но при этом не потерять ссылки, ТИЦ и PR – склейка доменов вам поможет.

Пример можете посмотреть прямо на этом здесь. Попробуйте набрать www.master-css.com и вас все-равно перебросит на master-css.com

И www будет удаляться из любых ссылок на мой сайт. И если кто то поставит ссылку с www, поисковик передаст весь ее вес домену master-css.com

Делаем 301 редирект через файл .htaccess

Сложного в этом ничего нет! Все делается простой правкой (созданием и правкой) файла в обычном блокноте.

Те, у кого CMS MaxSite – могут спокойно просто редактировать этот файл – он идет в комплекте системы!

Если у вас этого файла нет – тогда мы его просто создаем, название файла .htaccess – без каких либо расширений!

Возможно, Windows будет выпендриваться и говорить, что надо задать имя – тогда создайте этот файл через Total Commander или создайте его в любом редакторе (можно в обычном блокноте).

В большинстве случаев он идет вместе с CMS и должен быть у вас на хостинге в корневом каталоге сайта.

Если его там нет – создавайте и размещайте.

Если есть – просто редактируйте.

Теперь определитесь – какой домен вы хотите сделать главным и в путь по инструкциям ниже!


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

Открываем этот файл и добавляем в него следующий код:[]

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain.com RewriteRule ^(.*)$ http://domain.com/$1 [R=permanent,L]

Обратите внимание, что последние две строчки должны идти сразу за строкой RewriteEngine On – это важно!


И наоборот с без www на с www:

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

Просто вместо двух последних строчек напишите эти.

Если у вас есть этот файл, и там содержатся какие-то из этих строчек, но перед ними стоит знак # — это значит что строчка закомментирована и силы не имеет.

Уберите его!


301 редирект с одного домена на другой:

RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

Эту строчку вставляем вместо тех двух.

ОБЯЗАТЕЛЬНО:

1. Должна быть строка Options +FollowSymLinks

2. Должна быть строка RewriteEngine On

3. Строчки с редиректом должны идти СРАЗУ после строки RewriteEngine On

4. Файл .htaccess называется так, и никак иначе!

5. Файл .htaccess должен находиться в корневом каталоге!

6. Domain.com – не забудьте поменять на свой домен.

В принципе, это вроде все. Но 301 редирект хорошо понимает Google, а вот для Яндекса надо редактировать/создавать другой файл. Так что шаг ниже является – обязательным!


Склейка доменов для Яндекса:

Опять же идем в корневой каталог сайта и ищем файл с названием robots.txt, если его нет – создаем в обычном блокноте.

В этом файле размещаем следующий код:

User-agent: Yandex Disallow: Host: domain.com

Если у вас этот файл есть, а этих строк нет – значит добавьте их в конце через абзац.

Указываете главное зеркало в строчке Host — не забудьте поставить свой домен smile

Для тех, кто заказывает раскрутку у частных лиц и компаний.

Конечно, это очень редкий случай, но все же… Предупрежден – значит вооружен!

Иногда злостные оптимизаторы могут склеить свой домен с вашим и раскручивать себя.

Т.е. этот гЛавнюк склеивает и закупает ссылки и рекламу на свой домен, и пока он склеен с вашим – у вас растут пузомерки и посещалка.

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

Причем у вас на сайте может остаться файл robots.txt с главным зеркалом на его сайт.

Будьте бдительны! И требуйте постоянных отчетов работ.

Спасибо за внимание, на связи был Серёга!

Если будут вопросы – задавайте в комментах. wink

master-css.com


 Очень часто сайт первоначально создаётся на каком-нибудь тестовом домене третьего уровня. Затем при подключении основного домена второго уровня возникает проблема, так как обычно поисковые системы успевают проиндексировать сайт, работающий под доменом третьего уровня. Кроме того, существует проблема с доступностью сайта с www и без www, т.е. если сайт доступен сразу по двум адресам, то возникают дубли, приводящие к уменьшению веса сайта. Также есть проблема при доступности сайта под различными доменами, в том числе кириллическими, например, moy-sayt.ru, moysayt.ru, moysayt.su moy-sayt.su, moy-sayt.com, moysayt.com, мойсайт.рф, мой-сайт.рф и т.д. и т.п. Поисковые системы могут запутаться какой из этих адресов является основным, сканировать ли всё сразу или только один. В общем чтоб исправить эту ситуацию, и помочь поисковым системам и обычным пользователям оказываться на правильном домене, необходимо правильно настроить ваш веб сервер. Мы подробно остановимся на двух веб серверах — apache и nginx.

Apache

Для того чтоб происходила переадресация 301 (постоянная) необходимо чтоб  был установлен модуль rewrite и добавлены следующие строчки в файле .htaccess

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} !^www.moy-domen.ru
RewriteRule ^(.*)$ http://www.moy-domen.ru/$1 [R=301,L]
</IfModule>

Строки RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC] и RewriteRule ^([^/]+) $1 [L] отключают редирект для robots.txt, делается это исключительно для поисковика Яндекс, соответственно в файле robots.txt добавляется строчка, которая сообщает поисковой системе Яндекс о принадлежности сайта к определённому хосту, вне зависимости от того под каким доменом работает, так как в противном случае будет редирект и Яндекс не сможет получить доступ к robots.txt вторичных доменов вашего сайта:

User-agent: Yandex
Host: www.moy-domen.ru

Строки RewriteCond %{HTTP_HOST} !^www.moy-domen.ru и RewriteRule ^(.*)$ http://www.moy-domen.ru/$1 [R=301,L] означают, что если домена не соответствует www.moy-domen.ru, то произвести редирект на домен www.moy-domen.ru.
Так намного правильнее делать, вместо того чтоб перечислять все домены подряд. Соответственно в ServerAlias все домены нужно перечислить. Таким образом если нужно делать редирект на moy-domen.ru, то команда должна выглядеть следующим образом:

RewriteCond %{HTTP_HOST} !^moy-domen.ru
RewriteRule ^(.*)$ http://moy-domen.ru/$1 [R=301,L]

www.dr.arut.ru

Редирект .htaccess: постоянное перенаправление, 301

Подобная штука имеет разные названия. Непонятки может вызвать разве что число — почему же 301? Суть кроется в самом протоколе HTTP, который на запросы клиента отвечает определённым кодом состояния. Код 404 Not Found (Страница не найдена) известен почти всем. Код 200 OK почти не известен, но именно он означает, что всё в порядке и документ будет показан в браузере. А вот код 301 Moved Permanently означает, что документ окончательно перебрался на новый адрес. Именно его и называют чаще всего перенаправлением, хотя общий пул ответов обозначен как — 3xx: Redirection.

В общем случае, для безусловного внешнего (назовём его пользовательским) редиректа, при котором браузер автоматически переадресовывается на другую страницу, обычно незаметно для пользователя (изменяется адресная строка), можно в .htaccess поместить такой код:
RewriteEngine On
RewriteRule .* http://newsite.ru/ [L,R=permanent]

Здесь, первая строка включает механизм модуля mod_rewrite, который позволяется вытворять с адресами всё, что угодно. Назовём это преобразованием URL по условиям на лету. Вторая строка определяет непосредственно правило для преобразования, в примере выше все запросы редиректятся на http://newsite.ru/. В квадратных скобках размещаются флаги: L — последнее (Last) правило, R — тип перенаправления (Redirect), указывается в виде R=code, где code — буквенное или числовое обозначение (permanent или 302).

Этот способ хорош, когда вам неважно, на какую страницу нового сайта ссылаться. Но если вы переехали на другой домен, то желательно делать редиректы всех запросов с сохранением адресов. Для этого используйте такой код:
RewriteRule ^.*$ http://newsite.ru/$0 [QSA,L,R=permanent]
Новый флаг QSA сохранит так же и параметры, которые можно встретить в адресах после знака вопроса. В уже знакомом примере:

https://a-panov.ru/?p=389

если я размещу в .htaccess код выше, то произойдёт перенаправление на адрес http://newsite.ru/?p=389 чего без данного флага не было бы.

Как настроить редирект на www (или без www)

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

Вариант попроще, для одного домена. Перенаправление производится с поддомена www.site.ru на site.ru:
RewriteCond %{HTTP_HOST} ^www.nsite.ru$
RewriteRule .* http://nsite.ru/$0 [QSA,L,R=permanent]

Здесь появилась новая директива RewriteCond, которая задаёт условие, при котором должны срабатывать редиректы — правила RewriteRule. Условие, в данном случае, имя домена, соответствующее www.nsite.ru (в регулярных выражения символ точки означает «любой символ», поэтому его желательно экранировать с помощью обратного слеша).

Обратное перенаправление тоже выполнить очень просто:
RewriteCond %{HTTP_HOST} ^nsite.ru$
RewriteRule .* http://www.nsite.ru/$0 [QSA,L,R=permanent]

Оба варианта рабочие, но у них есть маленький минус — для каждого нового конфига необходимо заменять домен nsite.ru на свой собственный. Нельзя ли сделать уникальный вариант? Легко!

Редирект с любого поддомена www:
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule .* http://%1/$0 [QSA,L,R=permanent]

Редирект на поддомен с www:
RewriteCond %{HTTP_HOST} !^www.
RewriteRule .* http://www.%{HTTP_HOST}/$0 [QSA,L,R=permanent]

Как создать .htaccess

Такие вопросы тоже возникают. Проблема в том, что стандартный Проводник (приложение в Windows, отвечающее за графический интерфейс) не позволяет создавать файлы, начинающиеся с точки (созданием файлов или папкок осуществляется щелчком правой кнопкой на рабочем столе или в окне, и выбора нужного действия из списка Создать). Но выход есть: открывайте стандартный рекдатор Notepad (блокнот), в меню выбираете Файл → Сохранить как…, и в качестве имени сохраняемого файла указываете .htaccess — после этого он будет создан.

Файл .htaccess не работает

Бывают случаи, когда директивы из файла не работают. Обычно это вызвано тем, что в конфигурации Apache отключена поддержка .htaccess, за что отвечает директива:
AllowOverride none

Обычно это делается, чтобы несколько увеличить быстродействие — в этом случае веб-сервер не производит поиск и разбор .htaccess.

Возможен и такой вариант, что на сервере не используется Apache, например, IIS — основной «гость» на Windows-хостинге. Для уточнения свяжитесь с поддержкой своего хостера.

Есть ли какой-нибудь аналог .htaccess в nginx?

Ещё один довольно частый вопрос. В этом веб-сервера такой возможности нет. Однако, подобное обычно и не требуется. Дело в том, что nginx, как правило, устанавливается в качестве фронденда, т. е. принимает и обрабатывает все запросы, которые либо выполняет сам, либо перенаправляет на бэкенд, роль которого может выполнять Apache, который можно дополнительно конфигурировать с помощью .htaccess.

a-panov.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector