Как правильно настроить URL адрес сайта в файле .htaccess

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

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

Конечно, в сети очень много такой информации, но до сих пор, практически ежедневно, я сталкиваюсь с неправильно настроенным адресом сайта, когда главная страница находится по 2, 4, а то и по 6 разным адресам. И это очень плохо.

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

Почему так важно, чтобы URL были правильно сформированы?

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

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

Откуда берутся ошибки в URL?

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

Первая и самая частая зависит не от CMS, а от настроек самого домена. Так повелось, что во время привязки домена к хостингу, он получает несколько разных адресов, в зависимости от задач, и некоторые из этих адресов индексируются поисковыми системами. Из-за этого создается дублирование. Более подробно об этом ниже.Вторая проблема заключается непосредственно в CMS, которые динамически создают адреса. И об этом мы так же сегодня поговорим.

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

Что за чудо-юдо файл .htaccess?

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

Итак, у каждого сайта должен быть файл .htaccess, и он есть в каждой CMS по умолчанию. Но часто, после установки CMS файл имеет другое название и поэтому не выполняет своих функций. Так же он может быть полупустым или настройки в нем могут быть закомментированы. Важно также знать, что в современных CMS файл .htaccess может быть в каждой папке сайта. Но нас интересует только один единственный, который находится в корневой директории сайта, т.е. в той папке, в которой находятся все папки и файлы вашей CMS. Часто эта папка носит названия public_html, html или www.Подключившись к своему сайта по FTP или зайдя в файловый архив через панель управления хостингом, вы обнаружите этот файл. Как уже сказала, если вы им ещё не пользовались, он может иметь расширение txt, как это сделано в Joomla

Файл htaccess в joomla
или иметь название ht, и расширение .access, как это сделано в CMS MODx, что вместе как раз и образует слово htaccess.

Файл htaccess в modx
Может иметь другое написание, но обязательно образовывать именно это слово htaccess.

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

Как переименовать htaccess
При данном сохранении обязательно в пункте Тип файла выберите Все файлы. А само имя начинается с точки (.). Если вы не поставите точку в начале названия, файл не будет работать.

После этого готовый файл уже можно заново заливать на хостинг. Конечно, вы можете переименовать данный файл и непосредственно в файловом менеджере или в FTP клиенте, просто вы должны быть уверены, что файл не имеет никакого другого расширения, кроме .htaccess.

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

Не сильна я в технических деталях настройки сервера, но прежде, чем мы приступим, вы должны найти в файле .htaccess такую строчку:

RewriteEngine On
Вообще из всех виденных мной .htaccess эта строка была у всех, а функция mod_rewrite, о которой говорит данная запись, включена у всех хостеров. Но, если вдруг в вашем файле такой записи нет, то лучше уточните у своего хостера, включена ли у них функция mod_rewrite.
Ниже этой строки должна быть ещё одна
RewriteBase /
Если ее нет, то добавьте ее самостоятельно. На всякий случай, просмотрите наличие этой строки до самого конца файла.Все остальные записи, о которых пойдет речь в этой статье, должны находиться ниже этих двух строк. Это самое важное, что я хотела сказать прежде, чем мы приступим к основной части данной статьи. Итак, основные ошибки и способы их устранения.

Адрес сайта с WWW или без

Самая часто встречаемая ошибка. Когда вы привязываете свой домен к хостингу, ему прописывается несколько записей типа А. После того, как на хостинг вешается сайт, он становится доступным по разным адресам
http://www.site.ru
http://site.ru
Это уже классика жанра. Для меня самое удивительное в такой ситуации всегда остается то, что даже если на сайт или внутри сайта нет ни одной ссылки с www, поисковик обязательно проиндексирует его с www.На данный момент, приставка www является аттавизмом, т.е. эта часть домена утратила свою функциональность, и современные сайты не нуждаются в ней. Но многие вебмастера продолжают традицию оставлять адрес сайта с www, и в этом нет ничего плохого. Просто это не несет никакой функциональности. Просто привычка и не более.

Лично мое мнение – www абсолютно бесполезная приставка. Но до тех пор, пока в настройках DNS домена будет оставаться данный пункт, пока поисковые системы непонятным образом будут находить адрес сайта именно с приставкой, на нас ложится ответственность предупреждать возможную проблему дублирования контента на сайте.
Итак, сейчас вы должны проверить, как открывается ваш сайт.
Сначала вводим в адресную строку браузера адрес своего сайта с www

http://www.site.ru
Сайт загрузился. Если в адресной строке ничего не изменилось, адрес так и отображается с www, то удаляем из адреса www и обновляем страницу. Смотрим в адресную строку браузера.Если адрес изменился на www.site.ru, значит у вас домен настроен на постоянное отображение с www и ничего менять не нужно.

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

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

Теперь необходимо решить, в какую сторону менять домен, оставлять его с www или делать без? В таком случае лучше спросить у самих поисковых систем, какой из адресов они считают правильным. И лучше подстраиваться под Яндекс, а не под Google.Раньше было достаточно посмотреть выдачу Яндекса, чтобы понять, какой домен Яндекс считает главным. Но сейчас Яндекс показывает все домены без www, но при этом все равно упорно продолжает индексировать с www.

Какие возможны другие варианты? Можно посмотреть показатель сайта тИЦ с www или без. Эту информацию показывают любые SEO инструменты. Или в Яндекс Вебмастер (что такое Яндекс Вебмастер) в меню выбираем Индексирование сайтаСтраницы в поиске. Яндекс показывает список проиндексированных страниц именно с таким адресом, который считает главным. Итак, главное зеркало домена выбрано, осталось внести некоторые изменения в служебные файлы сайта.

Если вы только создали свой сайт и он ещё не проиндексирован поисковыми системами.

  1. При добавлении сайта в инструменты для вебмастеров Google (Как пользоваться инструментами для вебмастера Google) добавить оба адреса, подтвердить свои права, и в настройках (Конфигурация сайтаНастройки) каждого из них, указать Основной домен.
  2. Создать файл Robots.txt и указать в нем директиву Host
User-agent: Yandex
Host: site.ru
Если ваш сайт уже существует и проиндексирован поисковыми системами, то к этим двум пунктам добавляем третий. Чтобы поисковые системы начали правильно воспринимать адрес вашего сайта, находить его только по одному адресу, то сделать это можно с помощью редиректа 301, который и настраивается в файле .htaccess.Думаю, удобней всего вносить изменения в файл, предварительно скачав его к себе на компьютер. Открываем файл .htaccess. и добавляем 301 редирект (помните, после каких строчек нужно добавить?)

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

RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
Обратная ситуация, перенаправляем домен с www на домен без www
RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Сохраняем, закачиваем файл на хостинг, проверяем доступность сайта по адресу, с которого настраивали перенаправление. Если все сделано правильно, то вбивая адрес в браузере, который не должен индексироваться, во время загрузки страницы адрес сайта в адресной строке бразуера сам изменится на тот, который вы выбрали основным.

Адрес сайта со слэшем / в конце URL или без

Вторая проблема, которая напрямую зависит от CMS – это окончание URL. Ставится ли в конце адреса слэш или нет.
http://site.ru
http://site.ru/
Вообще, во многих CMS эта проблема решена, сами CMS программно подставляют слэш в конце URL, некоторые наоборот, специально убирают, но в любом случае вы должны проверить. Т.к. есть и такие CMS, которые открывают сайт и так, и так. И если первые два варианта ещё куда ни шло, то последний - очень плохо. Почему это важно? Да потому, что для поисковых систем это разные адреса. И если разработчики CMS не продумали этот момент, то он полностью ложится на плечи вебмастера или оптимизатора.А как правильно, спросите вы? Если не вдаваться в технические детали, то суть в том, что главная страница сайта по сути является каталогом, который содержит вложенные подкаталоги и отдельные страницы – файлы. Исторически так сложилось, что каждый каталог, который содержит внутри себя подкаталоги и отдельные файлы должен заканчиваться слэшем, показывая тем самым, что это каталог, а не конечный документ. Конечный же документ не должен заканчиваться слэшем, сообщая тем самым, что это конечный документ и больше ничего нет. Таким образом, адрес сайта и рубрики, которые содержат конечные документы, должны заканчиваться слэшем.

http://site.ru/
сообщает, что внутри каталога site.ru находятся ещё документы.
http://site.ru/rubrika/
сообщает, что внутри каталога site.ru находится подкаталог rubrika, который содержит в себе ещё какие-то документы. И наконец
http://site.ru/rubrika/page.html
сообщает, что внутри каталога site.ru находится подкаталог rubrika, который содержит в себе документ page.htmlНо это все теория, и в современном интернете все вебмастера разошлись, кто в лес, кто по дрова. И даже окончание .html уже многие также считают аттавизмом, как и www.

А теперь давайте посмотрим, добавляется ли к адресу вашего сайта слэш?

Вводим в адресную строку адрес своего сайта без слэша. Смотрим, добавился слэш или нет. Вводим адрес со слэшем, и также смотрим, изменилось ли что-то в адресной строке. На всякий случай предупреждаю, что в Google Chrome лучше не смотреть, он удаляет все слэши.

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

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

Как настроить слэш в конце адреса сайта

Сначала нам нужно выяснить, а как сама CMS формирует адреса. Не знаю, как это делают профессионалы, я нашла чисто дилетантский способ. С вероятностью в 99% в шапке сайта ваш логотип или название сайта выводится в виде ссылки на главную. А сама ссылка формируется программно CMS. Подводим курсор мышки к ссылке в заголовке или логотипу сайта и внизу браузера смотрим ссылкуslash-na-konce-url
Внизу мы видим, что адрес формируется со слэшем на конце. Значит нам нужно прописать в файле .htaccess 301 редирект, который будет перенаправлять с адреса без слэша на адрес со слэшем. Да и вообще, на мой взгляд это самый оптимальный вариант с той точки зрения, что некоторые пользователи, давая ссылку на ваш сайт, могут ее не скопировать из адресной строки, а прописать вручную. И вряд ли кто подумает прописать на конце слэш. А ведь для поисковика это разные ссылки. И такая ссылка принесет значительно меньше пользы.

Настроить слэш в конце URL поможет эта запись

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
Это случается редко, но иногда, в зависимости от CMS, от уже имеющихся настроек, особенно когда настроены ЧПУ ссылки, некоторые настройки могут конфликтовать друг с другом. В таком случае лучше поискать поддержку на официальном сайте CMS, которой вы пользуетесь.

В адресе главной страницы index.php или main

Не знаю, как в других CMS, но главный специалист по формированию таких URL – это Joomla. Да, это такая CMS, которая умудряется выдавать пользователю главную страницу, как минимум, по трем адресам.
http://site.ru/
http://site.ru/index.php или http://site.ru/index.html
http://site.ru/main
И это я ещё упустила вариант, когда сам сайт открывается с www и без. А вы проверили свой сайт на Joomla? Или у вас другая CMS? Проверьте на всякий случай. Если сайт новый, то проверяем вручную, вбивая в адресной строке браузера разные адреса. Если сайт уже проиндексирован, то смотрим инструменты для вебмастеров Яндекс и Google, какие страницы находятся в индексе.

Как убрать index.php и main

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

#RewriteBase /
Redirect 301 /main http://site.ru/
Для страницы index.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
Обращаю ваше внимание на то, что если вы используете основной адрес с www, то запись http://site.ru/ должна быть с www, т.е. http://www.site.ru/. Соответственно, если вы обнаружили файл index с расширением .html, то указываем его в правиле.

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


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

Как правильно настроить URL адрес сайта в файле .htaccess: 42 комментария

  1. Danidar

    Катюш, а можно поподробней — «Подключившись к своему сайту по FTP или зайдя в файловый архив через панель управления хостингом, вы обнаружите этот файл». Мой домен находится на www.regnic.name. Хост бесплатный. Платформа blogger. 
    Joomla, CMS MODx? Это отдельная тема? 
    Скорее всего все вопросы по созданию чудо-юда файла .htaccess направлять к хостеру или как? И как попасть в корневую директорию сайта?:)) Просто от этого файла зависит оформление 404 страницы.

  2. SEO-Дилетант'ка

     Не знаю, применительно к чему вы написали свой комментарий, но моя статья ориентирована на владельцев автономных CMS, а не на Blogger.

  3. Geny

    Читал-читал, аж взопрел… Я ввел в адрес сайта( теперь у меня есть блоги на WP) с www, после загрузки  эти «букавки» исчезают. Это есть хорошо?

  4. Ruslan_rv

    а я вроде сделал все правильно, указал с www, но сайт всеравно и так и так в адресной отражается (

  5. Ruslan_rv

    спустя несколько минут все заработало само по себе ), видать понадобилось какоето время браузеру или поисковикам для индексирования.
    Спасибо большое наткнулся на статью случайно , и даже не думал, что такой нюанс может столько вредить продвижению…

  6. Ruslan_rv

    подскажите еще пожалуйста в одном вопросе , после проведенных операций которые описаны в этой статье, надо ли в файле sitemap указывать http://www.site.ru/index.html  или  достаточно просто просто прописать  http://www.site.ru

  7. Ruslan_rv

    и кстати в примере ошибочка
    Для страницы index.php
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://site.ru/ [R=301,L]перед [R=301,L] нужно еще прописать   $1

  8. Александр

    Статья очень отличная , и очень все это обязательно нужно делать, так как самый капризный это Яндекс. И последнее все редиректы сработали, за исключением добавление слеш к главной страницы сайта. CMS DLE 9.3

  9. Netpochty

    Огромное спасибо автору!!! Несколько дней мучился с настройкой ЧПУ и .htaccess перерыл мегабайты информации в Сети, но реально помогла только эта статья.

  10. Ruslan_rv

    Подскажите пожалуйста а как быть если сайт запускается с двумя и тремя слешами после доменного имени ?
    Если пишу без слеша он подгружает главную с флешем, но если прописываю 2 или 3 слеша он так и отображает в адресной строке…

  11. Александр

    Укажите какая cms у вас стоит на сайте. Очень интересный случай, оставьте свои данные для связи. Если не желаете высвечивать свой рабочий адрес ( можете указать любой мусорный ящик или icq) через него договоримся о контакте и попробуем решить проблему. Александр 

  12. Ruslan_rv

    с Новым Годом Вас и с Рождеством!!! =) почему же не желаю? мой  icq 348179085. В программировании я новичек, но сейчас питаю все как губка=) по поводу  двух -трех слешей уже понял что это не только у меня на сайте но и на любом сайте в интернете  тоже самое.
    Ввожу адрес сайта с одним слешем он так и отображается  если ввожу с тремя то после загрузки страницы в адресной строке он тоже отображается с тремя =))))))))))

  13. SEO-Дилетант'ка

    Я не работала с DLE, поэтому не могу сказать ничего конкретного. Некоторые CMS сами регулируют работу слеша в конце URL и в первую очередь стоит этот вопрос уточнить в документации или задать вопрос в сообществе данного движка. Возможно, в DLE это регулируется самой CMS.

  14. SEO-Дилетант'ка

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

  15. Geny

    Спасибо за ответ( хоть и не скорый), но он так и не внес для меня полной ясности(извините)…
    Если буквы WWW исчезают, значит Яндекс  УЖЕ индексирует без дублирования и с адресом http://site.ru/?  Ввод такого адресаhttp://www.prt56.ru/*  в Яндекс вебмастере, например определяется как некорректный и и у меня нет зеркала основного домена. Так?

  16. Ruslan_rv

    Екатерина подскажите еще пожалуйста когда используются ссылки с идентификаторами, ну к примеру я хочу перейти с одной страницы сайта на другую причем в определенный абзац используя при этом id=»paragraf». После такого перехода в адресной строке отобразится следующее (www.site-name.com/page-name.html #paragraf) не запутается ли поисковик и правильно ли все поймет ? Спасибо.

  17. Ruslan_rv

    Добрый день, как то уже писал здесь по поводу адреса  с навигацией страницы по id, но комментарий видать либо  не прошел модерацию, либо не дошел до нее, не важно =) Итак, мне интересно как гугл реагирует на страницы которые имеют несколько заголовков h1-h6 и соответственно  ссылочную навигацию по ним, ведь при переходе по такой ссылке адрес страницы меняется.
    пример: http://www.site/stranica.html , при переходе по ссылке получится http://www.site/stranica.html#nameID.
    Спасибо!=)

  18. SEO-Дилетант'ка

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

  19. Александр

    Так зайдите же в панель для web Яндекс и смените зеркало с www на без www т.е на  http://  вот и вся проблема решена

  20. SEO-Дилетант'ка

    Ваша ошибка была в том, что настроив редирект, вы не исправили файл robots.txt. Я думаю, не будет ничего страшного, если вы оставите редирект, исправите файл robots.txt, и плюс к этому в Яндекс Вебмастер укажите главное зеркало без www. Ещё раз, на всякий случай, убедитесь, что у вас:
    1. стоит редирект с домена _www.site.ru_ на домен _site.ru_
    2. В файле robots.txt стоит запись: Host: site. ru
    3. В Яндекс Вебмастер указано главное зеркало site. ru
    ну и опять придется подождать, пока яндекс все это учтет.

  21. Ruslan_rv

    Вот мой роботс
    User-agent: *
    Disallow:
    Host: _e v r o l u x e . c o m_
    Sitemap: _h t t p : / / e v r o l u x e . c o m / s i t e m a p . x m l
    Sitemap: _h t t p : / / e v r o l u x e . c o m / s i t e m a p _ U K . x m l
    #
    и был таким изначально.

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

  22. InfineonBS Mail

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

  23. Алексей

    Здравствуйте! у меня instant cms, Яндекс как-то странно индексирует сайт, если в поиск ввести ключ «телевизор» (пример) то в раздаче выскакивает страница каталога «телевизор жк», а если ввести в поиск «телевизор жк» появляется Главная страница сайта. Вообщем по ключевому слову выскакивает рубрика каталога. Я хочу спросить, а в .htaccess это можно отрегулировать?

  24. Alex-8606

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

  25. noopp

    сори что наспамил — вот так вот выглядит мой .htaccess … я правильно понимаю что он в большинстве своём закомментирован с помощью # или нет? до этого только слэшами наблюдал… Спасибо

  26. noopp

    Спасибо… с удовольствием бы настроил файл по данной инструкции, но 1 из комментов (не буду указывать источник) меня несколько напряг: До переклейки зеркала по robots.txt ставить редирект на новое зеркало нельзя. Иначе страницы выпадут из индекса. Может быть заметили, тех поддержка пишет, меняйте в robots, а не ставьте 301 редирект

    1. SEO-Дилетант'ка Автор записи

      Если в адресе после .ua/ или .html/ стоит хэш (#), то это никак не нужно убирать, дублирования это не создает. Это Якорь. Либо предусмотрен шаблоном, либо каким-то плагином.

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

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