Eviter que les "rewriteRule" transforment les caractères accentués

url-esc.jpgSur 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).

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : https://blog-du-grouik.tinad.fr/trackback/868

Fil des commentaires de ce billet

Page top