Меню

настройка htaccess для seo

Настройка файла .HTACCESS для SEO

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

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

Операторы .htaccess

  • . — любой символ
  • $ — ограничение справа
  • ^ — ограничение слева
  • — 0 и более символов
  • + — 1 и более символов
  • [] — диапазон значений
  • \ — экранирование
  • () — переменная

Выбор главного зеркала

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

Т.е. с WWW (http://www.domain.ru) или без WWW (http://domain.ru)

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

Каждая страница сайта, должна открываться только по одному URL адресу!

Для тех, кто не настроил главное зеркало в самом начале, рекомендую сделать так.

  • Заходим в Яндекс;
  • Вводим адрес нашего сайта;
  • Смотрим, какое зеркало присвоено.

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

Давайте посмотрим, что определяет поисковик Google.

  • В поисковой системе Яндекс, сайт открывается по адресу http://www.as-pushkin.ru
  • В поисковой системе Google, сайт открывается по адресу http://as-pushkin.ru

В чем собственно заключается проблема?

  1. Каждая страница имеет 2 дубля, что снижает уникальность контента;
  2. Если проект большой, то снижается скорость индексации проекта;
  3. Естественные ссылки будут размещаться по разному, что снизет их эффективность.

Редирект в файле .htaccess

Выберите, как вы хотите, что бы открывался Ваш сайт. С WWW. или без WWW.

Рекомендую использовать без WWW.

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

Как сделать редирект на без WWW

Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^www.as-pushkin\.ru$ [NC]
RewriteRule ^(.*)$ http://as-pushkin.ru/$1 [R=301,L]

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

Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^as-pushkin\.ru$ [NC]
RewriteRule ^(.*)$ http://www.as-pushkin.ru/$1 [R=301,L]

Выделенный домен, заменить на свой адрес!

Для использования необходимо удостовериться, что в httpd.conf подключен модуль mod_rewrite, а также влючена опция FollowSymLinks. На обычных хостингах этот модуль включен.

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

Следующая, частая проблема с дублированием — это открытие страниц со слешем и без слеша на конце URL адреса.

т.е. страницы сайта могут открываться по адресам:

Бывают еще более худшие варианты

Что бы избежать этой проблемы и настроить редирект без слеша, добавьте в .htaccess такой код.

Если же наоборот, вы хотите сделать редирект со слешем в конце, то код будет таким.

301 редирект в .htaccess

301 редирект — это постоянное перенаправление пользователя с одного URL адреса на другой.

Редирект страницы на новый адрес

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

http://domain.ru/cont

http://domain.ru/contact

Читайте также:  установка virtualbox на windows 10 home

Необходимо добавить следующий код:

Redirect 301 /cont http://domain.ru/contact

Редирект каталога или категории сайта на новый адрес

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

RewriteRule ^okna1pvh /okna-pvh/$1 [R=301,L]

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

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

После этого в файле Robots.txt добавьте следующий код

Перенос сайта на другую CMS

Следующий момент. Когда вы переносите сайт на новую систему управления, то часто страницы могут иметь иные расширения.

  • Было — http://domain.ru/okna.html
  • Стало — http://domain.ru/okna .php

Редирект с index.php на корень сайта

Для редиректа 301 вида “ваш_сайт/index.php” на “http://ваш_сайт/” :

RewriteCond % ^[A-Z]<3,9>\ /index\.php\ HTTP /
RewriteRule ^index\.php$ http://ваш_сайт/ [R=301,L]

Базовая настройка для файла .htaccess

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

Как настроить файл .htaccess для домена .рф

[UPDATE] 12.09.2015 Сами столкнулись с такой задачей. Поэтому выкладываем готовое решение.

Стоит заметить, что в коде нет кирилических значений! Они не воспринимаются. Домен РФ нужно перевести в PinyCod (Просто вставьте в поисковую строку Яндекса свой домен). Будьте внимательны с 4-й строкой! Там .рф (.xn--p1ai) отделен символом \ -оставьте так!

Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^www.xn——5cdbacableitfk0bfa3abl5cjhir7bifirx\.xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://xn——5cdbacableitfk0bfa3abl5cjhir7bifirx.xn--p1ai/$1 [R=301,L]

RewriteCond % ^[A-Z]<3,9>\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://xn——5cdbacableitfk0bfa3abl5cjhir7bifirx.xn--p1ai/ [R=301,L]
RewriteCond % !-d
RewriteCond % ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

RewriteBase /
RewriteCond % ^[A-Z]<3,9>\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://xn——5cdbacableitfk0bfa3abl5cjhir7bifirx.xn--p1ai/$1 [R=301,L]
RewriteCond % !(\.[^./]+)$
RewriteCond % !-d
RewriteCond % !-f
RewriteRule (.*) /$1.html [L]

RewriteCond % ^[A-Z]<3,9>\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://xn——5cdbacableitfk0bfa3abl5cjhir7bifirx.xn--p1ai/ [R=301,L]
RewriteCond % !-d
RewriteCond % ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

RewriteBase /
RewriteCond % ^[A-Z]<3,9>\ /([^.]+)\.php\ HTTP
RewriteRule ^([^.]+)\.php$ http://xn——5cdbacableitfk0bfa3abl5cjhir7bifirx.xn--p1ai/$1 [R=301,L]
RewriteCond % !(\.[^./]+)$
RewriteCond % !-d
RewriteCond % !-f
RewriteRule (.*) /$1.php [L]

Наш блог

Где открыть расчетный счет для ИП или ООО

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

Лучшие курсы по обучению профессии «Администратор Инстаграм».

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

Инстаграм курсы. Обучение продвижению и ведению аккаунта

Пока сидите дома, пройдите популярные курсы по ведению, оформлению и продвижение аккаунтов в Инстаграм.

ТОП-13 лучших VPN-сервисов в России

С помощью VPN вы можете пользоваться интернетом, сохраняя при этом полную конфиденциальность. О наиболее популярных и бесплатных сервисах расскажу в этой статье.

источник

Как сделать 301-редирект в файле .htaccess? Примеры и правила настройки

Введение. Правила приведены для сервера Apache. В правилах: % — обозначает фрагмент URL-адреса после знака вопроса (задания значений CGI-параметров). Срабатывание того или иного правила для редиректа определяется тем, попадает URL-адрес страницы под это правило или нет. О значении тех или иных обозначений (^, $, NC и т.д.) см. памятку в конце страницы.

Читайте также:  мастер сохранения настроек для office

Проверка кода ответа. Быстрая и бесплатная проверка кодов ответа для списка URL в режиме онлайн реализована в рамках комплекса инструментов «Пиксель Тулс», предусмотрено удобное цветовое кодирование и загрузка URL файлом.


Анализ проведён с помощью инструментов в сервисе Пиксель Тулс.

Ниже даны наиболее используемые правила настройки файла .htaccess для 301-редиректа. Лучше размещать все правила после двух строк:

Options +FollowSymLinks
RewriteEngine On

# Текстовый комментарий, данная строчка не будет обрабатываться.

RewriteCond % ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

RewriteCond % ^80$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ https://pixelplus.ru/$1 [R=301,L]

Redirect 301 /was.php http://www.site.ru/new.php

При этом, новый адрес указывать необходимо полностью с http и доменным именем.

RewriteRule ^dir /dir-new/$1 [R=301,L]

Скажем, адрес страницы имеет вид: http://www.site.ru/dir/index.php?IBLOCK_ID=1&SECTION_ID=111 тогда для настройки 301 переадресации на новый адрес, необходимо использовать следующее правило:

RewriteCond % ^IBLOCK_ID=1&SECTION_ID=111$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это SECTION_ID), можно использовать следующий код:

RewriteCond % ^IBLOCK_ID=1&SECTION_ID=(.*)$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

Если адрес имеет следующий вид: http://www.site.ru/?abc то для перенаправления подойдет последовательность строчек:

RewriteCond % ^abc$ [NC]
RewriteRule ^$ /? [R=301,L]

Если требуется настроить переадресацию только для адреса http://www.site.ru/dir/, но при этом чтобы страница http://www.site.ru/dir/index.php?IBLOCK_ID=1 открывалась по старому адресу, необходимо использовать спецсимвол $ в правиле.

RewriteRule ^dir/$ http://www.site.ru/new-dir/ [R=301,L]

Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код (он на латинице). В частности, сама зона .рф преобразуется в .xn--p1ai.

RewriteCond % ^old-site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^xn-. \.xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^si-te\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L]

RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301]

RewriteRule ^dir(.*)$ /new-file.php [L,R=301]

RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301]
RewriteRule ^dir(.*)$ /all.php [L,R=301]

RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php

RewriteRule ^img/(.+)\.jpg$ http://img.domain.ru/$1.jpg [R=301,L]

Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.

DirectoryIndex index.html index.php index.htm index.shtml

RewriteCond % ^[A-Z]<3,9>\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]

Для всех индексных страниц на сайте:
RewriteRule ^(.*)index\.php$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^test.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru% [R=301,NC,L,QSA]

RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L]

Код позволяет поставить 301-редирект со всех папок вида http://site.ru/***/uniqe-file.html на один файл в корне /unique-file.html. Бывает полезен при переделке сайта и изменении ссылок.

RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]

Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/

Позволяет устранить наличие дублей URL с HTTPS в индексе поисковых систем.

RewriteCond % ^80$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

RewriteCond % ref-spam-site.ru [NC,OR]
RewriteCond % another-ref-spam.ru [NC]
RewriteRule .* — [F]

Настройка позволяет отклонить спамный реферальный трафик с ряда ресурсов по заголовку HTTP_REFERER.

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

Читайте также:  программа настройка cbbe тела

ErrorDocument 404 /404-for-me.php

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

! Для сайтов, на которых используется не сервер Apache, аналогичные 301-редиректы легко настраиваются с помощью PHP.

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

RewriteCond % (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone) [NC]
RewriteRule (.*) http://mobile.site.ru/ [L,R=301]

RewriteCond % !(accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer) [NC]
RewriteRule (.*) http://no-search.site.ru/ [L,R=301]

Переадресация с www.site.ru/component/content/?view=featured на www.site.ru/
RewriteCond % ^view=featured$ [NC]
RewriteRule ^component/content/$ /? [R=301,L]

Переадресация с www.site.ru/index.php?idc=4&marea=6 на www.site.ru/
RewriteCond % ^idc=4&marea=6$ [NC]
RewriteRule ^index\.php$ /? [R=301,L]

. — Точка заменяет произвольный символ.
[abc] — обозначает перечень символов, совпадающих с буквами a, b, или с.
[^abc] — перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с.
* — означает, что предшествующий символ может повторяться (0 или более раз).
[abc]* — команда найдёт идущие подряд символы из заданного набора.
[^abc]* — с точностью до наоборот.

.* — заменяет абсолютно любой набор символов. «.*» — найдёт все подстроки между кавычками.
^ — начало строки (в том случае, если используется в начале выражения).
$ — обозначает конец строки.

\w — буква, цифра или подчёркивание _.
\d — заменяет любую цифру.
\D — заменяет любой символ, но не цифру.
9 — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.

RewriteRule (.*) $1? [R=301,L]
Располагать после: RewriteBase /

Памятка по используемым символам и обозначениям

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

Спецсимволы, используемые в правилах и их значения.

  • ^ — спецсимвол начала строки;
  • $ — спецсимвол конца строки;
  • ! — спецсимвол отрицания;
  • . — точка, заменяет любой символ, но только один;
  • () — группировка;
  • \ — «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом;
  • # — начало текстового комментария в файле.

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

  • ? — символ повторяется 0 или 1 раз.
  • + — повторяется от 1 до 65536 раз.
  • * — повторяется от 0 до 65536 раз.

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].

  • NC — флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
  • R — флаг Redirect, производит процесс остановки изменения URL-адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY).
  • L — флаг Last, останавливает формирования URL-адреса и строка считается окончательной.

источник