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

Другие темы, посвящённые созданию вебсайтов.

Інші теми, присвячені створенню вебсайтів.
Ответить
Аватара пользователя
alexbel
Друг Zzz
Сообщения: 137
Зарегистрирован: Пт мар 11, 2016 5:58 am
Откуда: Беларусь
Пол: Мужчина
Агент пользователя: Opera Windows 1920x1080
Контактная информация:

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

Сообщение alexbel »

Наконец то дошли руки для публикации. Все описанное ниже, будет полезно не только начинающим веб-мастерам / SEO-спецугам, но и тем то уже давно занимается этим нелегким трудом. Поехали.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изображение

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

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

Код: Выделить всё

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

Код: Выделить всё

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

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

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

http://www.site.ru
http://site.ru


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

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

http://www.site.ru

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

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

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

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

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

Если вы только создали свой сайт и он ещё не проиндексирован поисковыми системами.
  1. При добавлении сайта в инструменты для вебмастеров 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. Подводим курсор мышки к ссылке в заголовке или логотипу сайта и внизу браузера смотрим ссылку

Изображение

Если внизу мы видим, что адрес формируется со слэшем на конце. Значит нам нужно прописать в файле .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, то указываем его в правиле.

Всем спасибо за внимание. Всех благ!
_________________________
Изображение
Аватара пользователя
igordk
Сообщения: 7
Зарегистрирован: Ср июл 10, 2019 11:23 am
Пол: Не указан
Агент пользователя: Chrome Windows 1280x1024

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

Сообщение igordk »

Полезная информация , спасибо .
Ответить

Вернуться в «Другие темы / Інші теми»