Je souhaite utiliser les règles de redirection 301 (par exemple, j’espère pouvoir éviter de réécrire les règles) pour redirect les URL contenant des caractères spéciaux (comme é, à, …) comme par exemple
redirect 301 / éxàmple http://mydomain.com/example
Cependant, le simple ajout de ceci ne fonctionne pas. Aucune suggestion?
Comment résoudre ce problème sur un système Windows
Sous Windows, vous pouvez utiliser Notepad ++ pour entrer correctement les caractères Unicode. Après avoir lancé Notepad ++, sélectionnez «Encodage en UTF-8 sans nomenclature» dans le menu «Encodage», puis tapez vos caractères Unicode et enregistrez le fichier.
Pour vous assurer que les caractères ont bien été enregistrés, téléchargez un éditeur hexadécimal pour Windows et assurez-vous que é
est enregistré en tant que c3 89
et que est enregistré en tant que c3 a0
.
Réponse précédente où j’ai supposé que vous êtes sur un système Linux
Les caractères Unicode n’ont probablement pas été enregistrés correctement dans le fichier .htaccess.
Qu’obtenez-vous lorsque vous essayez cette commande:
grep -o .x.mple .htaccess | od -t x1 -c
Vous devriez obtenir ceci si vos caractères Unicode sont enregistrés correctement.
0000000 c3 a9 78 c3 a0 6d 70 6c 65 0a 65 78 61 6d 70 6c 303 251 x 303 240 mple \nexampl 0000020 65 0a e \n 0000022
Si vous avez installé xxd
ou hd
, vous pouvez obtenir un meilleur résultat pour effectuer votre dépannage:
$ grep -o .x.mple .htaccess | xxd -g1 0000000: c3 a9 78 c3 a0 6d 70 6c 65 0a 65 78 61 6d 70 6c ..x..mple.exampl 0000010: 65 0a e.
Dans toutes les sorties, vous pouvez voir que é
est enregistré en tant que nombre binary: c3 89
. Vous pouvez voir sur http://www.fileformat.info/info/unicode/char/e9/index.htm que le é
lorsqu’il est encodé en UTF-8 est bien deux octets: 0xC3 et 0xA9.
De même, à
au format UTF-8 est: 0xC3 0xA0. Voir http://www.fileformat.info/info/unicode/char/e0/index.htm . Vous pouvez également voir ces codes dans la sortie.
Celles-ci devraient fonctionner, mais cela dépend de certaines choses que vous devez vérifier en tant que checklit:
a2enmod mod_alias
example
? (Les redirections sont appliquées avant les alias) Ensuite, au lieu de le convertir en UTF-8, vous pouvez essayer de mettre les caractères tels qu’ils sont encodés par les navigateurs, par exemple %C3%A9
pour é, etc.