@aliasst

Как сделать редирект закодированного URL через htaccess?

Есть закодированный URL, где все спецсимволы заменены на знак процента с цифрой:
site.ru/%3Fs%3Dsanivite%26post_type%3Dproduct%26type_aws%3Dtrue?_openstat=dGVzdDsxOzE7

Как через htaccess сделать редирект на этот же урл, только в нормальном виде (со спецсимволами)?
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
@dodo512
RewriteEngine on

RewriteCond %{THE_REQUEST} ^\S+\s/%3F [NC]
RewriteRule .* /$0 [R=301,L,QSA]


В переменной %{THE_REQUEST} хранится первоначальная строка запроса целиком:
GET /%3Fs%3Dsanivite%26post_type%3Dproduct%26type_aws%3Dtrue?_openstat=dGVzdDsxOzE7 HTTP/1.1

Шаблон ^\S+\s/%3F ловит все адреса начинающиеся с /%3F
На вход RewriteRule поступает строка уже после декодирования последовательностей %XX
?s=sanivite&post_type=product&type_aws=true
Флаг QSA позволяет не потерять _openstat=dGVzdDsxOzE7 и в итоге редирект будет на адрес:
/?s=sanivite&post_type=product&type_aws=true&_openstat=dGVzdDsxOzE7
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы