Попробуйте следующее в верхней части вашего .htaccess
файла:
RewriteEngine On
RewriteCond %{QUERY_STRING} (.*)\\x01\\x02(.*)
RewriteRule ^up\.php$ /$0?%1%2 [R,L]
Двойной обратный слот sh в CondPattern необходим для соответствия одному обратному слэсу sh в строке запроса, поскольку в качестве управляющего символа в регулярном выражении PCRE используется обратный символ sh.
Обратные ссылки %1
и %2
соответствуют символам по обе стороны последовательности, которую вы хотите удалить. $0
- это просто обратная ссылка на совпавший URL-путь (сохраняет повторы).
ОДНАКО, запрос вида /up.php?f=0&t=n\x01\x02&...
обычно не вызывает 400 ответа. Последовательность символов \x01\x02
в URL - это просто буквенная последовательность символов: \
, x
, 0
, 1
и др. c. (в данном контексте это не закодированный символ).
Итак, если вы получаете ответ 400, вполне возможно, что что-то другое (возможно, правило mod_security?) вызывает этот ответ - который, возможно, находится вне вашего контроля.