Règles de redirection avec caractères spéciaux

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:

  • Avez-vous activé mod_alias? Sinon, vous devriez lancer a2enmod mod_alias
  • Avez-vous une redirection vers votre page d’ 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.