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

1) Правильное определение главного зеркала сайта с приставкой www или же без нее. Крайне важный параметр, о котором я рассказывал в своих предыдущих статьях. Дальше в статье я расскажу, как настроить данный параметр.

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

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

4) Убрать дубли страниц с такими параметрами как feed, replytocom, trackback и т.д.

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

Вид редиректа через файл htaccess:

Откройте файл htaccess (для сервера Apache), который располагается в корне вашего сайта (если такого файла нет, то создайте его).

luhnfv

 

В этом файле и будут проводится все дальнейшие настройки для правильной переадресации страниц и доменов сайта.
Для начала, давайте рассмотрим процесс указания главного зеркала сайта с приставкой www и без нее.

Пере направление домена с www на без-www

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

Пере направление домена без приставки www на www

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

Манипуляции со слешем в конце урла

Очень часто возникают ситуации, когда одна и та же страница на сайте, доступна по таким адресам:

http://site.ru/catalog/page

и

http://site.ru/catalog/page/

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

Чтобы исключить такой вариант, и оставить урлы страниц без слеша в конце, вставьте вот такой код в файл htaccess:

RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

если вы хотите, чтобы слеш присутствовал в конце каждого урла используйте такой код:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Отдельное пере направление для дублей главной страницы

Бывают моменты, что главная страница вашего сайта, доступна по нескольким адресам – index.php, home.php, default.php и т.д. (окончание может быть и другое – html, htm и т.д.), что также создает дополнительные дубли, но только для главной страницы.

Для исправления этой ошибки, вставьте в уже известный вам файл, такой код:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/ [NC]
RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.site.com/$1 [L,R=301]

Отнеситесь к этим 3-м пере направлениям очень серьезно, ведь от этих настроек напрямую зависит успех вашего проекта. Не допускайте ситуации, чтобы ресурс был доступен и с приставкой www и без нее, главная страница имела несколько адресов, а отдельные записи были доступны как со слешем так и без него! Этого не должно быть!

301 редирект для переадресации страниц старого домена на новый

Redirect 301 / http://www.newsite.com/

В случаи применения этого правила все страницы старого сайта будут перенаправлены на новый домен.

Для переадресации конкретной страницы старого сайта на страницу нового сайта вставьте в файл .htaccess следующий код:

Redirect 301 /oldsite/page.html http://www.newsite.com/page2.html

Также можно воспользоваться альтернативным вариантом перенаправления всех страниц старого сайта на новый:

RedirectPermanent / http://www.newsite.com/

А вот код для перенаправления со старого каталога в новый:

RedirectPermanent /old-catalog http://www.newsite.com/new-catalog/

Пере направление старого домена на новый:

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

Есть случаи, когда необходимо, чтобы страница типа test.htm перенаправлялась на страницу test.html. Это решается вот таким кодом:

RewriteEngine on
RewriteBase /
RewriteRule ^test\.htm$ test.html [R=permanent]

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

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.htm$ $1.html [R=permanent]

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

Хотя в принципе, базовые правила просты в понимании, и можно пробовать настраивать 301 редирект через htaccess под свои цели (если они не слишком сложные).

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

Проверку можно осуществить здесь. Интересуемая вас страница должна отдавать 301 ответ сервера.

mwrhnkio

 

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

Сервисы генерации базовых редиректов:

http://www.webconfs.com/htaccess-redirect-generator.php

http://www.rapidtables.com/web/tools/redirect-generator.htm
Создание пере направлений с помощью плагина
Разберем, как прописать 301 редиректы в WordPress с помощью плагина Redirection.

  1. Для начала находим и устанавливаем плагин.
  2. После активации плагина Redirection, переходим в панель управления «Настройки» — «Redirection».
  3. В Source URL прописываем старый адрес страницы, в Target URL – новый, на который будет происходить перенаправление.
  4. В Regular expression нужно поставить галочку и нажимаем Add Redirection.

Редирект 301 для данной страницы настроен

Редирект 301 для данной страницы настроен.

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

Как сделать редирект с помощью .htaccess?

Необходимо создать файл .htaccess в корневой директории сайта и прописать строку:
Redirect / http://www.example.com , где http://www.example.com имя сайта, на который производится перенаправление. Также для перенаправления вы можете использовать директиву mod_rewrite.
Пример ее использования (редирект со всех поддоменов *.domain1.ru на domain2.ru):

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

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

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

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

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

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

Для начала попробую пояснить что это такое: есть сайт например www.mobilinye-telefony.ru.

Поисковики его знают, но домен www.instructing.ru без префикса www они считают другим доменом. Далее, ссылки на ваш ресурс с каталогов, других сайтов и пр. имет вид www.сайт.ru, а некоторые ресурсы ставят ссылку на cайт.ru без www. Таким образом часть PR уходит на сайт без префикса. С помощью 301 редиректа мы склеиваем домены, перенаправляя посетителей и роботов с простого сайта на сайт с www или на оборот. Теперь поисковики видят что это один и тот же домен и весь пейджранк будет ваш.

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

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

Скрипт редиректа

Вообще скриптов позволяющих перенаправить юзера на другой адрес множество, рассмотрим простейший редирект на java script без задержки по времени.

<script language=’javascript’ type=’text/javascript’>document.location.href=»http://go.1ps.ru/pr/p.php?хххххх»;</script>

Где вместо http://go.1ps.ru/pr/p.php?хххххх пишем свой адрес куда нужно направить юзера. скрипт можно вставить как в шапку между тегами <head> и </head> или в тело страницы после тега <body>

 

такой метод можно использовать в случае отсутствия доступа в файлу htaccess или когда требуется установить редирект с малого количества страниц или спрятать реферальную ссылку.  В другом случае он будет неудобен. При использовании скрипта PR не передается.

Как использовать скрипт редиректа

Этот редирект можно выполнить таким образом. Делаем страницу с расширением HTM и создаем ссылку на нее. А в теле новой htm страницы пишем скрипт редиректа в котором прописана партнерская ссылка (пример партнерской ссылки сервиса 1ps)

таким же образом можно делать редирект с помощью мета тега который прописываем в голове страницы между тегами <head> и </head>

<meta http-equiv=»Refresh» content=»0;URL=»http://go.1ps.ru/pr/p.php?хххххх»> где 0 время в секундах, в нашем случае перенаправление происходит сразу. Или как описано выше, можно создать новую страницу где в хедере прописать редирект, вместо 0 прописать время например: 10 — 10 секунд, а в теле страницы пояснение тпиа: сайт переехал и через 10 секунд вы будете перенаправлены…

htaccess редирект

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

Как сделать 301 редирект с помощью htaccess? Для этого в файле пропишите следующие строчки:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^mobilinye-telefony.ru

RewriteRule (.*) http://www.mobilinye-telefony.ru/$1 [R=301,L]

Здесь идет перенаправление с сайта без префикса на сайт с www. Вместо выделенного жирным шрифтом вставьте свой адрес. Так же можете сделать .htaccess редирект наоборот, поменяв адреса сайтов в файле местами.

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

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

В корень домена, который будем клеить к основному помещаем .htaccess со следующей записью:

Redirect Permanent / http://www.www.mobilinye-telefony.ru (вместо моего пропишите свой адрес или полный адрес до нужной страницы) или вместо Permanent пишем 301.

Перенаправление с одного домена на другой в .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. в начале, но тут не забывайте о главном зеркале.

Выбирайте наиболее удобный для вас способ создания и настройки 301 редиректов в Вордпресс и делитесь своим опытом.
Вот и все, о чем я хотел рассказать вам в сегодняшней статье. Если остались вопросы, обязательно задавайте их. На этом все, всем пока!