fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Просування сайту

Що писати .htaccess

У цьому настроечном файлі можна писати як правила роботи для
ядра Apache, так і для модулів, з яких для нас інтерес
являє mod_rewrite. (За часів они потрібно було переконатися, що хостер його
встановив. Але в 2011-му році вкрай складно знайти хостинг-провайдера, не
підключає цей модуль Apache, так що турбуватися не варто).
Незважаючи на спрощеність (все непотрібне простому оптимізатору
таїнство Apache сконцентровано в іншому файлі налаштувань – httpd.conf), повні
перелік функцій і базового синтаксису доступних налаштувань
[http://httpd.apache.org/docs/2.2/howto/htaccess.html] і, зокрема, налаштувань
mod_rewrite [http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html] –
немаленькі документи. Веб-розробник може отримати абсолютно повний контроль
над сервером, але, на щастя, пошукова оптимізація цього не вимагає. Цілком
достатньо знати основні команди!
Коментар в .htaccess передує символом # – рядок,
перед якою стоїть решітка, веб-сервер обробляти не буде. Коментуйте
навіть такий невеликий код, як правила для Apache, і ви навіть через рік або два
зможете легко згадати, навіщо потрібна та чи інша настройка.
Головна сторінка без дублів
Зазвичай код головної сторінки фізично розташований у файлі
/index.html (або index.php – для більшості динамічних сайтів), але сайт
повинен відкриватися за будь-запитів: yoursite.ru, yoursite.ru/index.html,
www.yoursite.ru і www.yoursite.ru/index.html. Але для пошукових систем це
чотири різних URL! Якщо не налаштувати .htaccess вірно, пошуковик додасть в свій
індекс чотири однакових сторінки. Це ознака неякісного сайту. Уникнути
цієї проблеми можна за допомогою такого коду .htaccess:
Options
+FollowSymLinks
RewriteEngine
on
RewriteCond
%{HTTP_HOST} ^yoursite.ru
RewriteRule
(.*) [R=301,L]
RewriteCond
%{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
RewriteRule
^index.html$ [R=301,L]
Всі сторінки дублі будуть склеєні перенаправленням з кодом 301
(«постійне переміщення») з головною сторінкою – . Перед
цим, звичайно, треба перевірити, як «Яндекс» проіндексував сайт – з www або
без. Бажано також призначити відповідне основне дзеркало у файлі
robots.txt.
Строгий URL сторінки 404
Щоб переконатися, що сервер видаватиме саме ту
сторінку 404, яку ви підготували і створили, а не службову або яку-небудь
ще, додайте такий рядок:
ErrorDocument
404
Аналогічно можна вказати сторінки і для інших помилок.
Посторінковий і груповий редиректи
Перенаправити з однієї сторінки на іншу за допомогою
директиви Redirect:
Redirect
301 /old.html
Для групового редіректу потрібно використовувати RedirectMatch –
ця команда маски URL і імен файлів.
Збереження файлів замість відкриття
Багато бачили, як при спробі завантажити архів з розширенням
.rar браузер відкриває його у вигляді простого тексту з мішанини символів. Це
означає, що на сервері сайту не налаштоване примусове збереження типів
файлів, які не повинні відкриватися у браузері.
AddType
application/octet-stream .rar .doc .mov .avi .pdf .xls .mp4
Можна додати і інші розширення.
Налаштування ЧПУ (человекупонятных URL)
Настійно рекомендуємо використовувати налаштування, які
надає ваша CMS. Власне, незрозумілі довгі URL виникають тільки при
використання CMS (на статичному сайті їх не буває). Отже,
використовуйте налаштування і модулі CMS для налаштування – у всіх сучасних движках
такі можливості є.
Для їхньої коректної роботи .htaccess повинна бути рядок
RewriteEngine On (включення mod_rewrite). Настройка ж ЧПУ за допомогою «голої»
.htaccess – справа досить копітка. Наприклад, щоб перетворити URL типу
www.yoursite.ru/script.php?tv=123 Переклад книги Art of Seo блозі у більш зрозумілий www.site.ru/samsung/tv/123/,
пишемо ось такі рядки (RewriteEngine On потрібно писати в тому випадку, якщо
раніше в .htaccess mod_rewrite ще не був підключений):
RewriteEngine
on
RewriteRule
samsung/(.*)/(.*)/$ /script.php?$1=$2
Зрозуміло, що для успішної установки ЧПУ таким способом потрібно
освоїти весь синтаксис .htaccess і чимало потрудитися. Набагато простіше,
повторимося, користуватися засобами CMS.
Дублі сторінок без слеша в кінці URL
Щоб запобігти ситуацію з індексуванням сторінок
www.yoursite.ru/about і www.yoursite.ru/about/ як різних, ставимо наступний код:
RewriteCond
%{REQUEST_FILENAME} !-f
RewriteCond
%{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
Зі сторінок без слеша буде встановлено редирект на
«слэшевые».
Всі наведені вище приклади не варто бездумно копіювати в
.htaccess вашого сайту. Розберіться, чи є у вашого сайту описана проблема,
чи можна її вирішити за допомогою наведеного виразу, а потім вже правте код.
Обов’язково збережіть копію файлу .htaccess до того, як почнете вносити
зміни!
Важлива рекомендація: пошукайте в інтернеті оптимальні
налаштування .htaccess для вашої системи управління контентом. У всіх CMS є
свої особливості – наприклад, це специфічні ДО и сторінок-дублів, з яких
потрібно ставити редирект (і закривати від індексації). Для більшості
популярних CMS можна знайти вже готові правила .htaccess.
Переклад книги Art of Seo блозі
Переклад книги Art of Seo блозі