.htaccess это файл, в котором мы можем прописать дополнительные настройки веб-сервера Apache.
Каждому SEO-специалисту полезно будет знать о возможностях, которые открывают директивы файла .htaccess, а ещё лучше обладать базовыми навыками.
Ведь с помощью этого файла иногда можно сократить кучу рутинной работы или избежать серьёзных ошибок в продвижении сайтов.
Используем .htaccess если нужно
- Сделать 301 или 302 постраничный редирект
- Переехать на новый домен
- Правильно подклеить дроп
- X-Robots-Tag по условию
- Закрыть доступ на сайт для конкретных роботов
- Закрыть или разрешить доступ по IP
- Создать красивые страницы с кодом ошибок
Временный и постоянный редирект
# Пример постоянного редиректа по URL Redirect 301 /old-url https://example.ru/new-url # Пример временного редиректа по URL Redirect 302 /old-url https://example.ru/new-url
Если меняем URL страницы, то делаем 301 редирект.
Директива Redirect (код ответа) (старый URL) (новый URL)
Переезд сайта на новый домен
RewriteEngine On # на примере переезда с http на https RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # на примере переезда с www на без www RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
В примерах показан 301 редирект на соответствующие страницы на новом домене.
RewriteEngine On — Включает работу механизма преобразования RewriteRule,
RewriteCond — задаёт дополнительные условия для RewriteRule.
%{HTTPS} off — условие проверки на протокол https
%{HTTP_HOST} — домен сайта
%{REQUEST_URI} — URL после домена
[L] — флаг перехода к следующей итерации, так как в файле .htaccess они выполняются в цикле, пока не перестанет меняться URL
[R=301] — вызывает редирект с кодом ответа 301
. — любой символ,
* — любое количество, в том числе и ноль,
^ — начало строки,
$ — конец строки.
Клеим дропы, исключая ненужные страницы
RewriteEngine On RewriteCond %{REQUEST_URI} !^/contacts/$ RewriteCond %{REQUEST_URI} !^/reklama/.* RewriteRule ^.*$ https://example.ru/catalog/ [R=301,L]
У дропа, который мы купили для подклейки, могут быть в индексе страницы с неподходящим нам интентом, а так же следует исключать страницы, на которые ведут много спамных ссылок.
В примере я исключил страницу /contacts/ и все страницы начинающиеся на /reklama/.
И подклеил их 301 редиректом к внутряку https://example.ru/catalog/
! — в RewriteCond означает отрицание.
X-Robots-Tag
# для поисковых роботов работает аналогично метатегу robots # задаём параметры noindex, follow # для страниц начинающихся на /admin/ и совпадающим с /login/ SetEnvIf Request_URI "^/admin/.*" noindexfollow SetEnvIf Request_URI "^/login/$" noindexfollow SetEnvIfNoCase Request_URI ".pdf$" noindexfollow Header set X-Robots-Tag "noindex, follow" env=noindexfollow
SetEnvIf — задаёт переменную по условию,
SetEnvIfNoCase — то же, что и SetEnvIf, но без учёта регистра.
В данном случае мы задаём переменную env (она так называется по умолчанию),
Header — производит операции с заголовком HTTP запроса,
set — устанавливает новый заголовок с именем X-Robots-Tag и аргументом noindex, follow,
env=noindexfollow — условие на проверку (необязательный аргумент).
Гибкое управление доступом к сайту
# блокируем доступ к сайту поисковым роботам Яндекс и Google SetEnvIfNoCase User-Agent .*yandex.* search_robot SetEnvIfNoCase User-Agent .*google.* search_robot Order Allow,Deny Allow from all Deny from env=search_robot # блокируем доступ всем IP кроме своего Order Deny, Allow Deny from all Allow from 123.123.123.123 # блокируем переходы с различных сайтов SetEnvIfNoCase Referer ".*click.my.mail.ru.*" spam=yes SetEnvIfNoCase Referer ".*away.vk.com.*" spam=yes SetEnvIfNoCase Referer ".*zen.yandex.ru.*" spam=yes SetEnvIfNoCase Referer ".*youtube.com.*" spam=yes SetEnvIfNoCase Referer ".*t.co.*" spam=yes Order allow,deny Allow from all Deny from env=spam
Order — задаёт порядок директив,
Deny — запрещает, в данном случае для всех.
Allow — разрешает, в данном случае для одного IP-адреса: 123.123.123.123.
Allow и Deny можно ставить несколько подряд, задавая различные условия.
Красивые страницы ошибок
# Создаём красивые страницы и адресуем на них ErrorDocument 404 https://example.ru/404.html ErrorDocument 500 https://example.ru/500.html ErrorDocument 401 https://example.ru/401.html ErrorDocument 403 https://example.ru/403.html
ErrorDocument — делает редирект по коду ошибки на заданную страницу.
Здесь я привёл только малую часть директив, которые использую, опустив механизмы формирования ЧПУ, установку пароля и др..
Но для seo-специалиста этого уже будет достаточно.
На этом всё, удачных проектов!