База знаний Виртуальный хостинг Панель HostiMan Ошибка 403 из-за %3F и работа UnsafeAllow3F

Ошибка 403 из-за %3F и работа UnsafeAllow3F

Если при переходе на сайт по сложному URL, который в себе содержит QUERY_STRING строку и сочетание символов %3F, получаете ошибку 403:


Например, проблемный URL: https://ruvip63.hostiman.ru/test?utm_referrer=1%3F=test 

Проблема связана с некорректной обработкой символа %3F - начиная с версии 2.4.60 Apache обрабатывает данное выражение иначе, из-за чего перестают работать такие правила mod_rewrite, как:

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
RewriteRule (.+) index.php?p=$1 [QSA,L]

и другие аналогичные, в которых происходит передача дополнительного query_string - ?_route_=$1 и подобных.

Чтобы устранить 403 ошибку из-за наличия в URL символов %3F, есть несколько способов:

1) Отключение защиты в Apache и разрешение использования директивы UnsafeAllow3F
На хостинге данный вариант невозможен, так как использование UnsafeAllow3F создает потенциальную брешь в безопасности сервера
Вы можете использовать свой собственный виртуальный и выделенный сервер, и настроить его как необходимо вам, но мы не советуем так делать

2) Исправление правила RewriteRule
Обратитесь к разработчикам сайта, чтобы исправить RewriteRule таким образом, чтобы переданные после ? параметры считывались как необходимо