Представьте, что вы зашли в ресторан с конкретным желанием отведать ваш любимый суп, а официант говорит: «К сожалению, такого блюда у нас нет, и мы не можем приготовить ничего похожего на ваши требования». Примерно то же самое происходит в Интернете, когда сервер не может предоставить страницу или данные в нужном для вашего браузера формате. Именно такая ситуация и порождает ошибку 406 Not Acceptable.
Официальное определение
Ошибка 406 (Not Acceptable) – это код ответа HTTP, указывающий, что сервер не может вернуть данные в формате или виде, соответствующем критериям (заголовку Accept) в запросе клиента.
Почему возникает ошибка 406
Часто причиной становится несовпадение предпочтений, которые указывает браузер (или другое клиентское приложение) при запросе страницы, и тем, что сервер реально может выдать. Если сервер «не понимает», как сформировать ответ в нужном формате, он отвечает кодом 406.
Но есть и другие факторы:
- Слишком строгие настройки безопасности (mod_security). На хостингах с веб-сервером Apache включён модуль mod_security, который фильтрует запросы. Если запрос нарушает одно из правил безопасности (например, содержит «подозрительный» фрагмент кода), сервер вместо корректной страницы выдаёт ошибку 406.
- Проблемы с заголовками Accept. В HTTP-заголовках запроса клиент может указать конкретный формат: JSON, XML, HTML и т. д. Если сервер не умеет отдавать данные в указанном формате, возникает конфликт.
- Неправильная конфигурация .htaccess. Иногда настройки в этом файле препятствуют корректной обработке запросов, особенно если включены или отключены определённые опции, влияющие на согласование контента.
- Ошибки в коде сайта или плагинах. Если скрипты формируют неверные ответы или некорректные заголовки, это также может привести к ошибке 406.
Чем грозит ошибка 406 для SEO
Иногда кажется, что это не самая распространённая проблема, но игнорировать её не стоит:
- Проблемы с индексацией. Если поисковый робот (Яндекс или Google) столкнётся с 406 при попытке проиндексировать страницу, он может «решить», что контент недоступен, и пропустить эту страницу.
- Снижение доверия пользователей. Когда посетители видят сообщение об ошибке, у них возникает ощущение, что сайт «сломался» или не обновляется.
- Падение позиций в выдаче. Если поисковики не могут корректно отсканировать сайт, в перспективе это может негативно сказаться на позициях.
Поэтому важно быстро устранить причину ошибки и убедиться, что поисковые системы без проблем «видят» все нужные страницы.
Как обнаружить проблему
Сначала убедитесь, что ошибка действительно появляется регулярно, а не была разовым сбоем. Для этого можно:
- Проверить сайт через инструменты веб-мастеров:Яндекс.Вебмастер или Google Search Console. Если они фиксируют 406, значит ошибка систематическая.
- Проанализировать логи сервера. Ваш хостинг провайдер или панель управления (например, cPanel) позволяют просмотреть access-логи и error-логи, где указываются детали HTTP-запросов.
После этого определите, какие именно запросы вызывают ошибку (какие страницы, какие форматы или заголовки), и переходите к исправлению.
Как исправить ошибку 406
Ниже перечислены основные шаги, которые помогут устранить проблему:
- Проверить настройки безопасности.
Перед списком советов стоит уточнить, что делать это нужно аккуратно, ведь безопасность сайта важна. - Убедитесь, что в панели управления ваш модуль mod_security настроен корректно.
- Если подозреваете, что именно он блокирует «безобидные» запросы, можете временно отключить mod_security для конкретного домена и посмотреть, исчезает ли ошибка.
- Если ошибка пропала — причина найдена. Но оставлять защитный модуль выключенным надолго не стоит. Лучше обратиться к хостеру или настроить исключения, чтобы разрешить нужные запросы, не жертвуя безопасностью.
- Откорректировать заголовки Accept.
Часто клиенты (браузеры, приложения, боты) указывают в запросах такие заголовки, как Accept: application/json, text/html. Если ваш сайт или отдельные страницы не умеют работать с одним из этих форматов, сервер ответит 406. - Проверьте, в каком формате ваш сайт отдаёт данные.
- Если ваша страница чисто HTML, то заголовок Accept: application/json может приводить к конфликту.
- Чтобы избежать такого, используйте более «гибкие» заголовки вроде Accept: */*, указывая, что готовы принять любые данные.
- Изменить настройки .htaccess.
В файле .htaccess, расположенном в корневой директории сайта, могут содержаться директивы, которые запрещают или перенаправляют определённые форматы ответов. - Откройте .htaccess через «Файловый менеджер».
- Ищите блоки с модулями вроде mod_negotiation.c, RewriteRule, RewriteCond.
- Иногда достаточно добавить или удалить строчку Options -Multiviews, чтобы решить конфликт форматов.
- Проверить плагины и скрипты.
Если ваш сайт работает на популярной CMS (WordPress, Joomla, 1C-Битрикс и т. д.), посмотрите, не конфликтует ли какой-нибудь плагин с запросами. Выключите плагины по очереди, чтобы найти «виновника». - Связаться с хостинг-провайдером.
Если после ручной проверки вы не нашли причины, стоит обратиться к поддержке. Возможно, на уровне сервера (Apache, Nginx) установлены фильтры, которые и вызывают 406. Техническая поддержка поможет проверить логи и найти более точное объяснение.
Что делать, чтобы ошибка 406 не вернулась
Как и многие проблемы в веб-разработке, ошибка 406 иногда возвращается, если не устранить первопричину. Чтобы всё работало стабильно:
- Настройте регулярный мониторинг. Это могут быть сторонние сервисы (например,Ping-Admin.ru) или встроенные в вашу CMS инструменты, которые регулярно проверяют доступность страниц.
- Следите за логами. Периодически просматривайте логи в панели управления или по FTP, чтобы вовремя замечать подозрительные запросы и всплески ошибок.
- Обновляйте скрипты, плагины и CMS. Устаревший код часто становится источником ошибок и уязвимостей.
- Консультируйтесь со специалистами. Если сайт приносит вам доход, имеет смысл периодически проводить аудит безопасности и производительности.
Итоги
Ошибка 406 Not Acceptable на первый взгляд выглядит сложно и может насторожить, однако её причины, как правило, сводятся к конфликту между запросом клиента и тем, что может выдать сервер. Это могут быть слишком «строгие» заголовки Accept, неудачные правила mod_security или некорректные настройки .htaccess.
Главное – не оставлять эту проблему без внимания, ведь от доступности и правильной работы вашего сайта зависят доверие пользователей и позиции в поисковой выдаче. Проверяйте логи, тестируйте отключение модулей безопасности на время, при необходимости просите помощь хостера — и ошибка 406 перестанет вам докучать.
Читайте также: