Как настроить .htaccess для безопасности
Дирижёр вашего онлайн оркестра
В мире серверов Apache есть один файл, который обладает почти безграничной властью над вашим сайтом. Он лежит в корне сайта, не имеет имени (начинается с точки) и способен как мгновенно ускорить загрузку и защитить от хакеров, так и «положить» весь сайт одной неверной строкой. Это .htaccess.
Для SEO-специалиста .htaccess — это швейцарский нож. Им можно настроить редиректы, кэширование, сжатие, ЧПУ, защиту от хотлинкинга и ещё десятки вещей, не трогая код самого сайта. В этой лекции мы разберём ключевые SEO- и security-настройки .htaccess.
Базовая структура .htaccess
apache
# Включаем движок перезаписи URLRewriteEngine On# Устанавливаем базовый путьRewriteBase /# Здесь будут идти правила
Склейка зеркал и HTTPS (самое важное для SEO)
Редирект с www на без www:
apache
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Редирект с HTTP на HTTPS:
apache
RewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Эти два правила — фундамент. Без них ваш сайт будет доступен по 4 адресам (http://, https://, www., без www), создавая дубли и размывая вес.
Кэширование статических ресурсов (Ускорение)
Браузерное кэширование — один из самых мощных рычагов ускорения сайта. Вы говорите браузеру: «Эти файлы не меняются, храни их у себя год».
apache
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/webp «access plus 1 year» ExpiresByType text/css «access plus 1 month» ExpiresByType application/javascript «access plus 1 month» ExpiresByType text/html «access plus 0 seconds»</IfModule>
Сжатие Gzip (Уменьшение трафика)
Включение сжатия Gzip сокращает размер передаваемых текстовых файлов на 60-80%.
apache
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript</IfModule>
Защита от хотлинкинга (Кража изображений)
Хотлинкинг — это когда другие сайты вставляют ваши изображения через прямую ссылку, расходуя ваш трафик.
apache
RewriteEngine OnRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^https?://(www\.)?site\.ru [NC]RewriteRule \.(jpg|jpeg|png|webp)$ — [NC,F,L]
Блокировка доступа к служебным файлам
apache
# Запрет доступа к самому .htaccess<Files .htaccess> Require all denied</Files># Запрет доступа к xmlrpc.php (часто атакуется)<Files xmlrpc.php> Require all denied</Files># Запрет просмотра содержимого папокOptions -Indexes
Типичные ошибки и отладка
Любая синтаксическая ошибка в .htaccess вызовет 500 Internal Server Error. Всегда делайте бэкап перед изменениями. Комментируйте правила (#), чтобы отключать их, не удаляя. Проверяйте синтаксис в онлайн-валидаторах.
Заключение
.htaccess — это мощнейший инструмент, который должен быть в арсенале каждого SEO-специалиста. Потратьте час на его правильную настройку, и он будет работать на ваш сайт годами.