Eviter que les "rewriteRule" transforment les caractères accentués
Sur un mutu OVH [1]avec ça dans le .htaccess:
SetEnv PHP_VER 5_TEST SetEnv REGISTER_GLOBALS 0 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
l'adresse:
http://www.unSite.fr/index.php?post/Plan-d-accès
devient:
https://www.unSite.fr/index.php?post/Plan-d-acc%C3%A8s
Et paf, page 404
La solution est simple, il suffit d'ajouter le flag NE (no escape) dans la rewriteRule. comme ceci:
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301]
Voila, les caractères accentués ne sont plus "percent-encoded" suite à leur passage dans la regex.
L'illustration a été empruntée sur le site de Joe Dog Software
Note
[1] Je viens de découvrir qu'OVH propose la mise en place d'un certificat SSL sur ses mutualisés (cher quand même: 59,99 € TTC pour un certificat basique). J'ai donc passé un dotclear en https (pas ce blog, lui est sur un dédié chez online).