Fini les accents dans les URLs

Ouais, je sais, je devrais faire un “=”.urlencoding($val) à chaque fois mais bon hein, ça passe toujours. Non? 

Tomcat 8.5 et tomcat 9 (tomcat 8.0 aurait dû marcher mais pas chez moi) ça y est, ils n’acceptent plus d’accents dans les urls query_string. à peine s’ils acceptent les ([{|}]).

Utilisons l’apache en frontal pour transformer les accents reçus dans les URLs en leur équivalent %XX. Bonne idée au départ, mais je n’ai pas réussi à modifier la query string en lua. ça aurait été cool. Donc suivant la méthodologie QAD (euh.. quick and dirty …), voici la centaine de RewriteRule nécessaires : 


#used by : Include conf/rewriteacc.inc
echo "# UGLY : transcode real iso-8859-1 chars to %XX URL encoding " > /etc/httpd/conf/rewriteacc.inc
for L in a b c d e f;do
for C in 0 1 2 3 4 5 6 7 8 9 a b c d e f;do
X=$L$C
cat <<EOT>>/etc/httpd/conf/rewriteacc.inc
RewriteCond %{QUERY_STRING} ^(.*)\x$X(.*)$
RewriteRule ^(.*)\$ \$1?%1%$X%2 [N]
EOT
done
done
for X in 22 3c 3e 5b 5b 5c 5d 5e 7b 7c 7d 7e;do
cat <<EOT>>/etc/httpd/conf/rewriteacc.inc
RewriteCond %{QUERY_STRING} ^(.*)\x$X(.*)$
RewriteRule ^(.*)\$ \$1?%1%$X%2 [N]
EOT
done
cat <<EOT>>/etc/httpd/conf/rewriteacc.inc
RewriteRule ^(.*)\$ - [PT]
EOT

 

Je n’ose même pas commenter ces lignes. juste qu’il y a un proxypass derrière, d’où la bidouille du [PT] en fin de rewrites

Il y a des scripts quantiques schroedingeriens simultanément dans des états superposés de fierté et de honte.

Pocket