Бесплатная раскрутка сайтаСёрфинг: заработай кредитыДобавь свой сайт в системуРежимы показа и тарифыЭффективная реклама на сервисеБесплатные SEO-инструменты

Топ сайтов

Блог о ремонте квартир
1 Просмотров: 4272
Магазин рыболовных снастей
2 Просмотров: 3986
Сайт фотографа-пейзажиста
3 Просмотров: 3477
Каталог настольных игр
4 Просмотров: 3122
Уроки игры на гитаре
5 Просмотров: 2897
Блог садовода-любителя
6 Просмотров: 2650
Обзоры туристического снаряжения
7 Просмотров: 2311
Полная статистика

Последний участник

webmaster_orion
Сайт: «Каталог настольных игр»
добро пожаловать!

Статистика сайта

Сайтов в системе: 1 847

Участников: 12 306

Показов сегодня: 38 914

Сайтов в сёрфинге: 392

Онлайн сейчас: 57

счётчик визитов

Подробнее
Главная » Блог » Технический аудит » Файл .htaccess для начинающих вебмастеров

Файл .htaccess для начинающих вебмастеров

Рубрика: Технический аудит · Автор: редакция seo-vyatich · Время чтения: 10 мин · Просмотров: 4048
Файл .htaccess для начинающих вебмастеров

Файл .htaccess — один из тех инструментов, которыми пользуется почти каждый вебмастер, но мало кто понимает до конца. Его копируют с форумов, вставляют готовые куски из инструкций к CMS, а потом удивляются, почему сайт внезапно выдаёт «500 Internal Server Error» или уходит в бесконечный редирект. При этом базовые вещи в .htaccess осваиваются за вечер, и после этого многие технические задачи SEO решаются за минуты.

Через этот небольшой текстовый файл настраиваются перенаправления со старых адресов на новые, выбор главного зеркала сайта, принудительный переход на HTTPS, кеширование статики в браузере, сжатие, запрет доступа к служебным папкам и многое другое. Для продвижения это не мелочи: дубли страниц, медленная загрузка и цепочки редиректов напрямую мешают индексации и ранжированию.

Разберёмся по порядку: что это за файл, как он работает, какие правила нужны практически каждому сайту и как вносить изменения так, чтобы ничего не сломать.

Что такое .htaccess и где он работает

Название расшифровывается как «hypertext access». Это конфигурационный файл веб-сервера Apache, который позволяет менять настройки сервера для отдельной папки и всех вложенных в неё каталогов без доступа к главному конфигу. Точка в начале имени означает, что в Unix-системах файл считается скрытым — поэтому в некоторых файловых менеджерах его не видно, пока не включишь отображение скрытых файлов.

Ключевой момент, который нужно знать заранее: .htaccess работает только на Apache и совместимых с ним серверах, например LiteSpeed. Если ваш сайт обслуживает чистый Nginx, файл будет просто проигнорирован, а все правила нужно прописывать в конфигурации Nginx, к которой обычно доступа на виртуальном хостинге нет. Часто встречается связка, где Nginx стоит впереди и отдаёт статику, а Apache обрабатывает динамику — в этом случае .htaccess работает, но правила кеширования статики могут не применяться, потому что картинки и стили отдаёт Nginx.

Где лежит файл

Основной .htaccess находится в корневой папке сайта — там же, где index.php или index.html. Обычно это каталог с названием вроде public_html, www или htdocs. Правила из корневого файла действуют на весь сайт. Если положить отдельный .htaccess во вложенную папку, его правила будут дополнять или переопределять корневые для этой папки.

Если файла нет, его можно создать в любом текстовом редакторе. Важно сохранить его в кодировке UTF-8 без BOM и с правильным именем — ровно «.htaccess», без расширения .txt на конце. Некоторые редакторы в Windows норовят дописать расширение, поэтому имя лучше проверить в файловом менеджере хостинга.

Правила безопасной работы с файлом

Одна опечатка в .htaccess может положить весь сайт. Поэтому прежде чем что-то менять, усвойте несколько простых привычек.

  1. Всегда делайте резервную копию. Скачайте текущий файл или скопируйте его содержимое в отдельный документ. Если после правки сайт упал — просто верните старую версию.
  2. Меняйте по одному блоку. Добавили правило — проверили сайт. Если вставить сразу десять правил и что-то сломается, придётся гадать, какое из них виновато.
  3. Проверяйте в режиме инкогнито. Браузеры агрессивно кешируют 301-редиректы. Вы исправили ошибку, а браузер продолжает перенаправлять по старому правилу. Окно инкогнито или другой браузер избавят от путаницы.
  4. Тестируйте редиректы временным кодом. Пока отлаживаете перенаправление, используйте 302. Когда убедились, что всё работает, меняйте на 301.
  5. Смотрите лог ошибок. При ошибке 500 в логе ошибок сервера обычно написано, какая именно строка не понравилась Apache.
Ошибка 500 сразу после правки .htaccess почти всегда означает синтаксическую ошибку или директиву, которую не поддерживает ваш хостинг. Верните резервную копию, и сайт заработает моментально.

Синтаксис: из чего состоят правила

Файл читается сверху вниз, каждая директива пишется с новой строки. Строки, начинающиеся с решётки, — комментарии, сервер их игнорирует. Комментарии стоит писать обязательно: через полгода вы не вспомните, зачем добавляли то или иное правило.

Большинство SEO-задач решается модулем mod_rewrite. Его работа начинается с директивы RewriteEngine On, которая включает механизм перезаписи. Дальше идут пары из условий и правил:

  • RewriteCond — условие. Например, «если хост равен www.site.ru» или «если запрос пришёл не по HTTPS». Условий может быть несколько подряд, по умолчанию они объединяются логическим «И».
  • RewriteRule — само правило: какой адрес искать (регулярное выражение) и на что его заменить. В квадратных скобках в конце указываются флаги.

Самые частые флаги: R=301 — внешний постоянный редирект, L — последнее правило, дальше не обрабатывать, NC — без учёта регистра, QSA — сохранить параметры запроса. Без флага R правило выполняет внутреннюю перезапись: пользователь видит один адрес, а сервер на самом деле отдаёт другой файл. Именно так работают ЧПУ в большинстве CMS.

Помимо mod_rewrite, есть и более простой модуль mod_alias с директивами Redirect и RedirectMatch. Для разовых перенаправлений отдельных страниц он удобнее: одна строка — один редирект. Но смешивать оба модуля для одних и тех же адресов не стоит: они обрабатываются на разных этапах, и результат бывает неожиданным.

Задачи, которые нужны почти каждому сайту

Принудительный HTTPS

Если на сайте установлен SSL-сертификат, все запросы по HTTP должны постоянным редиректом уходить на HTTPS. Иначе у поисковика окажутся две версии каждой страницы. Правило строится так: условие проверяет, что HTTPS выключен, а правило перенаправляет на тот же адрес, но со схемой https. Учтите, что за прокси или CDN сервер может не видеть HTTPS напрямую — тогда проверяют заголовок X-Forwarded-Proto, иначе получится бесконечный цикл.

Главное зеркало: с www или без

Сайт с www и без www для поисковиков — два разных хоста. Нужно выбрать один и настроить 301-редирект со второго. Какой вариант выбрать, не принципиально, важно последовательно использовать его везде: в канонических ссылках, карте сайта, внутренних ссылках. Лучше объединить правила HTTPS и зеркала так, чтобы любой из четырёх вариантов адреса приходил к основному за один редирект, а не за два подряд.

Слеш в конце адреса

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

Перенаправление отдельных страниц

Сменили адрес статьи, удалили товар, объединили два раздела — старый адрес нужно перенаправить на новый или на ближайший по смыслу. Для одиночных случаев хватает строки с Redirect 301, старым путём и новым полным адресом. Когда таких редиректов сотни, лучше вынести их в карту перенаправлений на уровне CMS или в конфигурацию сервера: длинный .htaccess читается при каждом запросе и замедляет ответ.

ЗадачаМодульТипичный код ответа
HTTP → HTTPSmod_rewrite301
www → без www (или наоборот)mod_rewrite301
Единый формат слешаmod_rewrite301
Старая страница → новаяmod_alias301
Временная акция или техработыmod_rewrite / mod_alias302 или 503
Удалённая навсегда страница без заменыmod_alias410

Скорость: кеширование и сжатие

Скорость загрузки — один из факторов, которые учитывают поисковики, а ещё важнее она для пользователей. Через .htaccess можно заметно ускорить сайт без единой строки кода в самом движке.

Сжатие ответов

Модуль mod_deflate сжимает текстовые ресурсы перед отправкой: HTML, CSS, JavaScript, JSON, SVG. Объём передаваемых данных сокращается в разы. Картинки в форматах JPEG, PNG и WebP сжимать повторно не нужно — они уже сжаты, и выигрыша не будет, только лишняя нагрузка на процессор. Если хостинг поддерживает Brotli, он даёт ещё более плотное сжатие, но настраивается обычно на уровне сервера.

Кеширование в браузере

Модули mod_expires и mod_headers позволяют указать браузеру, сколько хранить файлы у себя. Логика простая: то, что меняется редко — картинки, шрифты, стили и скрипты с версией в имени — можно кешировать на месяцы. HTML-страницы кешировать надолго нельзя, иначе посетители не увидят обновлений. Если вы меняете CSS-файл без смены его имени или параметра версии, после настройки долгого кеша часть посетителей будет видеть старое оформление — учитывайте это.

Полезно оборачивать такие блоки в проверку наличия модуля, директивой IfModule. Если модуль на хостинге не установлен, блок просто пропустится, а не уронит сайт ошибкой 500.

Безопасность: что стоит закрыть

.htaccess — удобный способ закрыть доступ к тому, что посторонним видеть не нужно.

  • Листинг каталогов. Директива Options -Indexes запрещает показывать содержимое папок без индексного файла. Иначе любой может просмотреть список файлов в папке загрузок или резервных копий.
  • Служебные файлы. Конфигурационные файлы CMS, файлы с паролями, логи, дампы баз данных и сам .htaccess должны быть недоступны из браузера. Для этого используют блок Files или FilesMatch с запретом доступа.
  • Защита паролем. Админку или тестовый раздел можно закрыть HTTP-авторизацией через пару файлов .htaccess и .htpasswd. Это дополнительный барьер перед стандартной формой входа CMS.
  • Блокировка по IP. Если видите в логах настойчивые атаки с определённых адресов, их можно запретить. Но с этим не стоит увлекаться: списки адресов быстро устаревают, а длинный файл замедляет сервер.
  • Защита от хотлинкинга. Правило, проверяющее заголовок Referer, не даёт чужим сайтам вставлять ваши картинки напрямую и тратить ваш трафик. Не забудьте разрешить пустой реферер и поисковые системы, иначе картинки пропадут из поиска по изображениям.

Типичные ошибки новичков

Большинство проблем с .htaccess повторяются из сайта в сайт. Вот список того, что встречается чаще всего:

  • Бесконечный редирект. Условие написано так, что после перенаправления оно снова срабатывает. Браузер выдаёт «слишком много переадресаций». Чаще всего виноваты HTTPS за прокси или конфликт правил CMS и ваших.
  • Цепочки редиректов. HTTP → HTTPS, затем без www → с www, затем без слеша → со слешем. Три прыжка вместо одного. Робот их пройдёт, но это лишняя задержка и потеря части ссылочного веса.
  • Неправильный порядок блоков. Правила CMS, которые отправляют все запросы на index.php, должны идти после ваших редиректов. Если поставить их выше, до ваших правил дело просто не дойдёт.
  • Неэкранированные символы. В регулярных выражениях точка означает «любой символ». Чтобы указать именно точку, её экранируют обратной косой чертой.
  • Затирание при обновлении. Некоторые CMS и плагины перезаписывают .htaccess при обновлении или сохранении настроек. Пишите свои правила вне блоков, помеченных комментариями движка, и держите копию.
  • Редирект всего подряд на главную. При удалении страниц соблазнительно отправить все старые адреса на главную. Поисковики часто воспринимают такие редиректы как «мягкие 404», а пользователь теряется. Лучше вести на ближайший по смыслу раздел или честно отдавать 404 или 410.

Как проверить, что всё работает

После внесения изменений не ограничивайтесь тем, что главная открылась. Проверьте систематически:

  1. Откройте все четыре варианта адреса главной — с www и без, по HTTP и HTTPS. Все должны за один шаг прийти к основному зеркалу.
  2. Проверьте коды ответа любым онлайн-сервисом проверки заголовков или инструментом разработчика в браузере, вкладка «Сеть». Должен быть именно 301, а не 302.
  3. Убедитесь, что картинки, стили и скрипты загружаются, а не перенаправляются.
  4. Проверьте несколько внутренних страниц разных типов: статью, категорию, страницу с параметрами.
  5. Откройте админку CMS и попробуйте сохранить что-нибудь: иногда правила ломают именно её.
  6. Через несколько дней загляните в панели вебмастера — нет ли роста ошибок обхода.
Хороший .htaccess короткий, прокомментированный и понятный. Если файл разросся до сотен строк, скорее всего, часть логики пора переносить в CMS или конфигурацию сервера.

Итог

.htaccess — простой, но мощный инструмент, без которого сложно представить техническое SEO на сайтах под Apache. С его помощью вы закрываете вопрос дублей через главное зеркало, HTTPS и единый формат слеша, переносите вес со старых адресов на новые, ускоряете загрузку через сжатие и кеширование и закрываете служебные файлы от посторонних глаз.

Работайте с ним аккуратно: резервная копия перед каждой правкой, изменения по одному блоку, проверка в инкогнито и временные редиректы на время отладки. Освоив эти несколько привычек, вы перестанете бояться ошибки 500 и сможете решать многие технические задачи сами, не дожидаясь программиста.

Хотите проверить советы из статьи на практике? Добавьте сайт в систему обмена визитами и получите первые живые визиты бесплатно.
Мы используем файлы cookie, чтобы сайт работал корректно и удобно. Продолжая пользоваться сайтом, вы соглашаетесь с политикой использования cookies.Принять
↑