Ошибка 406 Not Acceptable на сайте выглядит пугающе, но причина у неё почти всегда одна и простая. Разберём, откуда она берётся и как чинится.
Что означает эта ошибка
Дословно — «не приемлемо». Сервер сообщает: я получил запрос, понял его, но отдавать ответ отказываюсь.
В теории код 406 означает, что браузер запросил формат, которого у сервера нет. На практике на сайтах это почти никогда не так.
Настоящая причина в девяти случаях из десяти
Её выдаёт защитный модуль на сервере хостинга. Он просматривает запросы и блокирует те, что показались ему опасными, отвечая кодом 406.
Срабатывает он по совпадению с шаблонами атак. Беда в том, что шаблоны широкие, и под них попадает обычный текст.
Типичные случаи, когда это происходит:
- в тексте статьи есть фрагмент кода или SQL-запрос;
- в поле формы человек написал слово вроде «select» или кавычки и угловые скобки;
- вы сохраняете страницу с большим объёмом разметки;
- плагин отправляет запрос, который выглядит нестандартно.
Ключевой признак: ошибка появляется не всегда, а на конкретном действии с конкретным содержимым. Один и тот же текст ломается стабильно, остальной сайт работает.
Как убедиться, что дело в этом
Уберите из текста подозрительный фрагмент и попробуйте сохранить снова. Получилось — причина найдена.
Второй признак: ошибка приходит мгновенно, без задержки. Сайт до обработки запроса даже не доходит.
Что делать
Обратиться в поддержку хостинга. Это правильный путь. Опишите, какое действие вызывает ошибку, и попросите посмотреть журнал защитного модуля и добавить исключение. Они видят точное правило, которое сработало.
Обойти на своей стороне. Если фрагмент кода нужен в статье, его можно вставить не напрямую, а через специальный блок для кода — тогда он передаётся в безопасном виде.
Не отключать защиту целиком. Совет «попросите выключить модуль» встречается часто и он плохой: вы снимаете защиту со всего сайта из-за одной статьи.
Другие причины, которые встречаются реже
Конфликт плагинов. Проверяется отключением по одному. Начинать стоит с тех, что работают с формами и безопасностью.
Правило в конфигурации сервера. Иногда 406 прописывают вручную для блокировки нежелательных запросов, а потом забывают.
Ошибка в теме или расширении. Редко, но бывает: код отдаёт этот статус там, где хотел отдать другой.
Как проверить, что починилось
Повторите ровно то действие, которое ломалось, с тем же содержимым. Ошибка, которая «больше не появляется», часто просто ждёт следующего похожего текста.
И сохраните пример проблемного текста: если ошибка вернётся после обновления хостинга, вы за минуту подтвердите, что причина прежняя.
Автор: Рогачев Дмитрий Васильевич, основатель La Chatte. Компания с 2014 года
делает сайты, интеграции и решения на искусственном интеллекте — более 400 проектов.
