Apenas para ecoar as preocupações nos comentários ... esse é um requisito estranho. No entanto, você pode fazer isso usando mod_rewrite. Por exemplo, tente o seguinte:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(testStr%3Dhello%26id%3Drad)$
RewriteRule ^/?(home)$ /$1?%1 [B,NE,R,L]
Isso emite um redirecionamento temporário (302) de /home?testStr%3Dhello%26id%3Drad
para /home?testStr%253Dhello%2526id%253Drad
(duplamente codificado).
A variável de servidor QUERY_STRING
não é% -decoded, portanto, você corresponde à string de consulta literal conforme fornecido na diretiva RewriteCond
.
A referência anterior $1
refere-se ao subpadrão capturado no padrão RewriteRule
, isto é. home
.
A referência anterior %1
refere-se ao subpadrão capturado na última condpat CondPattern (a diretiva RewriteCond
), por exemplo. a string de consulta codificada em% ( testStr%3Dhello%26id%3Drad
).
O sinalizador B
(escape backreferences) na RewriteRule
directive% -codifica a referência de referência ( %1
) para codificar duplamente a string de consulta.
O sinalizador NE
(noescape) impede que o susbstitution seja mais (triplo) codificado por URL!