301 редирект на сайте: правильная настройка htaccess

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

    Настройка 301 редиректа в большинстве случаев производится из файла под название .htaccess. Этот файл расположен в корне сайта и для его изменения используются специальные операторы:

    Спецсимволы:

    • ! – отрицание выражения;
    • [] – диапазон значений;
    • \ – символ, отвечающий за экранирование (текст после него будет считаться простыми символами, а не специальными);
    • () – в скобках указываются переменные;
    • $ – конец строки;
    • ^ – начало строки.

    Модификаторы:

    • *  – 0 и больше симв.;
    • + – 1 и больше симв.;
    • ? – повторение симв. 0 или 1 раз.

    С помощью 301 Moved Permanently можно направить пользователя с адреса страницы, прописанного в строке поиска, на любой другой. Для seo оптимизации данная функция позволяет перенести практически весь вес, которым обладала старая страница на другой адрес. Старый URL будет отмечен как устаревший. В результате позиции в поисковых системах будут сохранены. Если не ставить перенаправление, а просто создать новую страницу, то поисковики посчитают ее новой, и она будет участвовать в поиске наравне со старой.

    Существует несколько ситуаций, когда стоит использовать перенаправление:

    • При переходе на SSL протокол, когда URL будет изменено на HTTPS;
    • При необходимости изменения URL страницы;
    • Для того чтобы основные пузомерки сайта и органический трафик основного сайта выросли. Это можно сделать благодаря покупке домена с хорошей историей и простановке редиректа продвигаемый сайт;
    • Если будет совершен переезд на новый домен. Причин для этого может быть довольно много, и необходимо сохранять трафик;
    • Когда нужно склеить домены;
    • Прочие ситуации.

    Настроить редирект с http на https

    301 редирект с http на https

    Все больше вебмастеров следуют рекомендациям ПС и используют для сайта защищенный протокол. Для этого нужно установить 301 редирект с http на https посредствам файла .htaccess. Внесите в код следующие строки:

    RewriteCond %{SERVER_PORT} !^443$

    RewriteRule ^(.*)$ https:// site. com. ua/$1 [R=301,L]

     

    В случае, когда требуется поставить 301 редирект с https на http, то нужно прописать следующие строки:

    RewriteCond %{SERVER_PORT} !^443$

    RewriteRule ^(.*)$ http:// site. com. ua/$1 [R=301,L]

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

    Сегодня использование протокола www не является обязательным. При этом многие вебмастера все же стараются его применять. Когда идет настройка нового сайта, то рекомендуется в качестве главного зеркала выбирать страницы без www. Склейка доменов дает возможность объединить их траст  перенести основные параметры вместе с трафиком. Так же данная склейка является одним из факторов по оптимизации сайта. Иначе Яндекс и Гугл могут посчитать, что ресурс с www и без него – это два разные сайты с дублированным контентом и наложить санкции.

    Чтобы настроить 301 редирект с www на без www в .htaccess нужно прописать следующее:

    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^www. site. com.ua $ [NC]

    RewriteRule ^(.*)$ http:// site. com. ua/$1 [R=301,L]

    Устанавливая для выражения RewriteEngine в первой строке значения on или off, вы можете регулировать доступ к коду файла.

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

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

    Перенаправление на другой сайт

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

    • Прописывают постраничный редирект со старого домена на новый;
    • Устанавливают директиву host с новым именем домена.

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

    RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]

    RewriteRule ^([^/]+) $1 [L]

    RewriteCond %{HTTP_HOST} !^www\.site\.com

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

    В файле robots.txt нужно прописать следующие строки:

    User-agent: *

    Disallow:

    Host: newsite com

    301 редирект с одной страницы на другую

    Иногда нужно направить пользователей с одной страницы сайта на другую. Например, если Вы решили не изменять материал на одной из страниц сайта, а создали новую, куда должен быть направлен трафик. Или в случае работы с CMS появились дубли страниц, которые нужно убрать. Чтобы не потерять трафик на старые страницы сайта, лучшим решением будет простановка 301 редиректа с одной страницы на другую. Для этого прописываем в .htaccess следующие строки:

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^www\.project-seo\.net$ [NC]

    RewriteRule ^page/301-redirekta/$ https:\\www.project-seo.net/newpage/ [R=301,L]

    Редирект со страниц с index.php и index.html

    301 редирект с index

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

    RewriteCond %{QUERY_STRING} ^cPath=373_703

    RewriteRule ^index\.php$ http:// site.com.ua/? [L,R=301]

    Пример выше отлично работает на сайтах с бесплатными CMS, например на Joomla. Это актуально для оптимизации проекта.

    Если нужно поставить 301 редирект для главной страницы сайта с index.php на нормальный url, требуется прописать:

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ http:// site.com.ua/ [L,R=301]

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

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

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

    RewriteEngine On

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /main\.html\ HTTP/

    RewriteRule ^main\.html$ http:// vash-sait. com. ua/ [R=301,L]

    Или можно использовать такой способ:

    Redirect 301 /main.html http:// site.com.ua/

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

    RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)

    RewriteRule .* %1.html [R=301,L]

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

    В случае, когда требуется, чтобы у url сайта не было .html на конце, необходимо прописать следующее:

    RewriteCond %{REQUEST_URI} \.html$

    RewriteRule ^(.*)\.html$ /$1 [R,L]

    Иногда требуется поставить редирект с адресов вида .htm на адреса .html. Для этого прописываем следующие строки:

    RewriteBase /

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

    Редирект со страниц со слешем на конце на страницы без слеша

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

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} ^(.+)/$

    RewriteRule ^(.+)/$ /$1 [R=301,L]

    У некоторых CMS адреса могут формироваться таким образом, что страница будет доступна по адресу: /?page_id=2324. Для их перенаправления прописываем строки:

    RewriteCond %{QUERY_STRING} page_id=111

    RewriteRule ^ http:// site. com.ua /new-page/ [R=301,L]

    Настройка 301 редиректа на WordPress CMS

    Настройка 301 редиректа на WordPress

    Для сайтов под управлением этой CMS создано огромное количество плагинов, которые упрощают работу. Для настройки перенаправления страниц сайта можно воспользоваться плагином Redirection. Количество его скачиваний превышает 2 миллиона.

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

    Альтернативный вариант это плагин Safe Redirect, который вышел значительно позже. Его интерфейс более удобный для восприятия.

    плагин Safe Redirect

    Одним из самых простых решений для данной CMS можно считать плагин Simple 301 Redirects. Здесь отсутствуют лишние настройки, и плагин выполняет только перенаправление с одной страницы сайта на другую.

    301 редирект для OpenCart

    У всех сайтов под управлением данной CMS главная страница имеет вид адрес на конце которого находится: index.php /?route=common/home.

    Почему-то разработчики системы не хотят исправлять данную проблему, по неизвестным причинам. Поэтому решать ее приходится тем пользователям, которые решили использовать данную CMS. Сделать это можно заменив строки в файлах header.tpl и footer.tpl.

    Вместо:

    <?php echo $home; ?>

    Нужно прописать

    <?php echo $base; ?>

    Другим вариантом является стандартное изменение содержимого файла .htaccess. Пропишите там следующие строки:

    RewriteCond %{QUERY_STRING} ^route=common/home$

    RewriteRule ^index\.php$ http:// site. com/? [R=301,L]

    Чтобы установить 301 редирект на страницы с ЧПУ адресами потребуется прописать следующее:

    RewriteCond %{QUERY_STRING} ^path=83_94_113&route=product/category$

    RewriteRule ^index\.php$ http:// site. com/new-category? [R=301,L]

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

    www. site. com/katalog?c=category

    Чтобы решить данную проблему, используйте следующий код:

    RewriteCond %{QUERY_STRING} ^c=sumki$ [NC]

    RewriteRule katalog http:// site. com/? [R=301,L]

    Примечание

    При настройке 301 редиректа стоит помнить следующее:

    • Основное правило – это строгий учет последовательности всех действий. Если у Вас не работает то или иное перенаправление, проверьте, нет ли правила, которое запрещает его.
    • Большое количество синтаксиса и особенности настройки 301 редиректа не дает возможности запомнить всю имеющуюся информацию. Используйте официальные мануалы и старайтесь перебрать несколько вариантов, чтобы выбрать правильный.
    • После внесения изменений и настройки 301 редиректа, обязательно проверьте работоспособность сайта. Пройдите по страницам проекта и посмотрите, правильно ли работают установленные перенаправления. Если в синтаксисе была допущена ошибка, то она может повлиять на работу всего сайта.

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

    Поделится:
    14.12.2018
    2972

    Смотрите свежие кейсы:

    SEO кейсы от НАС!

    Последние посты: