Є думка, і воно не безпідставно, що кожний ресурс в мережі повинен мати 301 редирект, який був би налаштований так, щоб один з варіантів написання доменного імені в Урлі (з або без www) був би головним (наприклад, для мого блогу головним є варіант і при заході за адресою www., вас автоматично перекине на ).
Для чого це потрібно, запитаєте ви? Та й що таке доменна система імен? Про це я і спробую розповісти в цьому пості, але почати, мабуть, варто з історії зародження самої проблеми, пов’язаної з використанням або не використанням приставки WWW в Урлі сторінок ресурсу.
Звідки з’явилася приставка WWW і що в цьому поганого
Кілька десятків років тому World Wide Web була лише малою частиною інтернету, а сервера були дуже слабенькі, тому доводилося розміщувати, наприклад, сервер Apache на одному комп’ютері, поштовий сервер на іншому, а сервер FTP — на третьому.
Імена серверів починалися з назви машин, на яких вони розташовувалися, і в залежності від сервісу виглядали так: www.domain.com, mail.domain.com і ftp.domain.com (а так само зовсім раритет — gopher.domain.com).
У теперішній же час дані приставки є анахронізмом і вони повинні були б благополучно відмерти, проте, до цих пір існує безліч каталогів, які автоматично додають до імені вебсайту виду domain.com горезвісне www.
Так само існує чимало користувачів, які автоматично набирають в браузерах адресу ресурсу з цією приставкою на початку (всі ж знають пісню групи Ленінград). Тому даний префікс залишається і створює дуже цікаву ситуацію.
Виходить, що www.domain.com і domain.com технічно вважаються повністю різними об’єктами, причому www.domain.com є спорідненим домену третього рівня виду sub.domain.com.
Але при цьому ж, звичайно, www.domain.com і domain.com ведуть (або повинні вести) на одну і ту ж сторінку (на відміну від субдомену sub.domain.com), тобто виходить, що обидва вони є псевдонімами для один одного (алиасами, дзеркалами або ж за англицки alias).
Звичайно ж, можна все це пропустити і не забивати голову, але якщо ви серйозно дбаєте про просування в пошукових системах, то це може бути величезною перешкодою у вас на шляху. Дивіться самі, що виходить. Багато пошуковики сприймуть domain.com і www.domain.com як різні ресурси, зі всіма витікаючими звідси наслідками.
А саме — всі зовнішні посилання на ваш проект будуть ділитися на дві частини, залежно від того, в якому вигляді на вас проставили посилання (з www або без нього).
Виходить, що ви втрачаєте частини зовнішніх посилань, а це, відповідно, призводить до зниження сайту в рейтингу пошукових систем (негативно впливає на ранжирування, про яке я писав тут), і користувачів з них до вас буде приходити менше, ніж могло б.
Крім цього ще потрібно враховувати те, що серйозні пошукові системи (Google, наприклад) борються за унікальний контент і не індексують сторінки двійники (і навіть ресурси цілком можуть випасти з індексу), що загрожує нашій ситуації. Поясню.
Припустимо, що доменне ім’я domain.com стало популярним і на нього багато посилаються, але, як на зло, при початковій індексації пошуковик знайшов першим варіант написання www.domain.com і тепер виходить, що domain.com став двійником (не має унікального змісту) і з великою часткою ймовірності він випадає з індексу. Сумно, чи не правда? Тепер поговоримо про те, як цього уникнути.
Хтось дуже розумний придумав спосіб, як переадресувати один псевдонім до іншого, який по суті є переадресацією до самого себе. Спосіб цей називається Редирект і існує кілька варіантів його реалізації на різних серверах. Я наведу тут найпростіший, на мій погляд, спосіб використання файлу .htaccess.
301-ий редирект з WWW без нього і навпаки
Файл .htaccess потрібно створити в кореневому каталозі або відкрити на редагування, якщо він вже там є. Цей файл є прихованим і тому, щоб його побачити, потрібно зайти в кореневу папку на сервері хостингу, наприклад, за допомогою програми FileZilla (тут по роботі з нею мануальчик є) і у верхньому меню даної програми ФТП менеджера вибрати пункт «Сервер» — «Примусово відображати приховані файли».
Отже, відкриваємо цей файл звичайним текстовим редактором, можна, наприклад, у безоплатному і функціональному Notepad plus plus (тут ви знайдете його огляд), і додаємо наступні рядки для варіанту редіректу з www без нього:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.vash_sait\.ru$ [NC]
RewriteRule ^(.*)$ http://vash_sait.ru/$1 [R=301,L]
Редірект з варіанту без приставки варіант доменного імені з WWW:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^vash_sait\.ru$ [NC]
RewriteRule ^(.*)$ http://www.vash_sait.ru/$1 [R=301,L]
Не забувайте про зворотню похилу риску перед крапкою (.) у рядку RewriteCond — вона обов’язкова. Ви можете так само ознайомитися і з іншими варіантами 301 редіректу на цій сторінці. При 301 редірект Google має об’єднувати PR даних ресурсів. Тепер, до речі, ваш інтернет проект буде доступний і по доменному імені з www, так і без нього, але в адресному рядку вас буде перекидати на те ім’я, яке ви налаштували редирект.
Цей спосіб називається «перенаправлення з шаблоном». У результаті виходить наступне: якщо набрати в адресному рядку, наприклад, https://www./karta-sajta, то користувач буде автоматично переміщено на ту ж сторінку, тільки без префікса – https:///karta-bloga-2.
Директива Host — задаємо головне дзеркало для Яндекса
Для Яндекса додатково треба визначити, яке дзеркало (псевдонім) є головним, за допомогою директиви ‘Host’ у файлі Robots.txt. Він також, як і файл .htaccess, знаходиться в кореневому каталозі (якщо його там не виявиться, то вам потрібно буде його створити у себе на комп’ютері в будь-якому текстовому редакторі, а потім закинути в корінь хоста по FTP).
Код, що додається в Robots.txt повинен виглядати наступним чином:
User-agent: Yandex
Disallow:
Host:
Краще буде винести директиву ‘Host’ в окрему секцію, призначену тільки для робота Яндекса (User-agent: Yandex), оскільки можливо, що інші пошукові системи (Google, наприклад) можуть некоректно відпрацювати незрозумілу їм директиву.
Так само за стандартами файлу robots.txt у кожній секції ‘User-agent’ повинна бути хоча б одна директива ‘Disallow», тому ми і поставили в коді порожню, нічого не забороняє директиву Disallow:.
Мій файл Robots.txt після додавання наведеного вище коду, став виглядати так:
User-agent: *
Disallow:
User-agent: Yandex
Disallow:
Host:
Sitemap: https:///sitemap.xml.gz
Sitemap: https:///sitemap.xml
Більш докладно про створення файлу robots.txt ви можете прочитати в наведеній статті про поліпшення індексації сайту пошуковими системами Яндекс і Google.
301 редирект з одного доменного імені на інше
У мене, до речі, виникла ще одна необхідність скористатися 301 редиректом. Справа в тому, що деякі мої проекти базуються на free хостингу , який при реєстрації надає безкоштовне доменне ім’я третього рівня.
Але я практично відразу купував для своїх проектів доменні імена другого рівня, які потім успішно прикручували. Проблема була в тому, що такі ресурси залишалися доступні і за старими безкоштовним доменів третього рівня (наприклад, tyujh.oxnull.net). Ось для вирішення такої ситуації я так само прописав у файлі .htaccess наступний код:
RewriteEngine On
RewriteCond %{HTTP_HOST} tyujh.oxnull.net
RewriteRule (.*) http://dgdh.ru/$1 [R=301,L]
Тепер, якщо набрати в браузері http://tyujh.oxnull.net, то відбудеться автоматичний перекидання на сайт http://dgdh.ru.
Удачі вам! До зустрічей на сторінках блогу