[résolu] comment remplacer url avec accents dans htaccess


JanoLapin
WRInaute accro
WRInaute accro
 
Messages: 4052
Inscription: 21 Sep 2008

[résolu] comment remplacer url avec accents dans htaccess

Message le Mar Mai 10, 2011 21:41

Bonsoir à tous,

un email parti trop vite comprend un accent dans le code d'ne url, ce qui mène évidemment à une 404.

J'ai essayé de mettre en place une redirection via .htaccess sans y arriver
Code: Tout sélectionner
Redirectpermanent /itinéraire/ http://example.org/itineraire/


Quel est le bon code à utiliser, SVP ?

Merçi de votre aide


JanoLapin
WRInaute accro
WRInaute accro
 
Messages: 4052
Inscription: 21 Sep 2008

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 0:13

j'ai essayé aussi avec la syntaxe suivante, là encore sans résultat
Code: Tout sélectionner
Redirectpermanent /itin%C3%A9raire/ http://example.org/itineraire/


j'avoue y perdre mon lorem ipsum. Si une âme charitable voulait bien m'indiquer la syntaxe à utiliser pour rediriger /itinéraire/ vers /itineraire/

Merçi de votre aide

Janolapin


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 0:24

t'as regardé sur google ? Tu dois pas être le premier au monde à être dans ce cas si ? ;p Fin j'sais pas j'ai tapé accent htacces y a eu une chiée de résultats ^^


Marie-Aude
Modérateur
Modérateur
 
Messages: 11878
Inscription: 5 Juin 2006

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 0:38

Et la solution de bourrin de créer un fichier itinéraire avec une redirection php dans l'en tête ?


JanoLapin
WRInaute accro
WRInaute accro
 
Messages: 4052
Inscription: 21 Sep 2008

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 1:51

@YoyoS: oui, j'ai regardé et j'ai trouvé tout un tas de trucs, dont aucun n'a marché chez moi (remplacer la lettre par un caractère universel, essayer des règles de Rewriterule ou des Rewritematch
C'est aggravé par le fait que je ne comprends pas la syntaxe des regex... alors forcémement ça n'aide pas :mrgreen:

@Marie-Aude: oui, j'ai essayé, mais je n'arrive pas à faire la redirection vers ce fichier itinéraire.php :twisted:

Il est tard je vais me coucher...; j'espère trouver la solution demain

Dolph
WRInaute impliqué
WRInaute impliqué
 
Messages: 631
Inscription: 1 Mar 2011

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 8:19

JanoLapin a écrit:@Marie-Aude: oui, j'ai essayé, mais je n'arrive pas à faire la redirection vers ce fichier itinéraire.php :twisted:

La redirection, tu la fais après...

Si ton url est ndd/itinéraire/ (sans extension)
Tu créé un dossier itinéraire dans le quel tu met un index.php
Dans l'index.php tu met un 310 vers le bon fichier.


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 8:33

En théorie, ce devrait être possible de catcher les caractères accentués. Comme je n'ai pas le temps de faire un test, voici une solution temporaire :
Code: Tout sélectionner
RewriteRule ^itin[^e]raire/? http://example.org/itineraire/ [L,R=301]


On dit simplement que si le caractère n'est pas un « e », on redirige. Ça prend évidemment n'importe quel caractère, mais ce n'est pas important dans ton cas.
Le « ? » permet de mettre dans l'adresse soit « itinéraire » ou « itinéraire/ ».


JanoLapin
WRInaute accro
WRInaute accro
 
Messages: 4052
Inscription: 21 Sep 2008

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 10:57

Merçi à tous (tes) de vos réponses.

Chez moi, la solution de redirection propsoée par Blount ne marche pas, sans que j'arrive à trouver pourquoi. En revanche, la méthode "brutale" de redirection par répertoire a bien marché.


Néanmoins, il y a plusieurs choses qui m'intriguent:

* quelle différence entre redirectMatch 301 et Redirectpermanent (on voit les deux sur des tutos en ligne) ?

* l'url example.org/itinéraire/ apparaîtra certes comme telle la barre d'adresse de navigateurs modernes (testé IE9, FF4, Opera11) mais elle sera traduite par example.org/itin%C3%A9raire/
Or la méthode adoptée, (cf. plus haut Marie-Aude + Dolph) consiste à créer un répertoire /itinéraire avec un index.php de redir. Donc de ne aps tenir compte de la traduction de l'url apr les navigateurs... et pourtant ça marche

J'y perds mon latin, avec cette histoire. C'ets marrant de voir qu'un petit truc , qu'on pensait maitriser convenablement, ouvre finalement une faille beaucoup plus grande... sniiif ! :idea:


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 11:23

Il y a moyen de voir tout le fichier htaccess ?


JanoLapin
WRInaute accro
WRInaute accro
 
Messages: 4052
Inscription: 21 Sep 2008

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 11:33

bien sur:
Code: Tout sélectionner
AddType x-mapp-php5 .php
Options All -Indexes
<files .htaccess>
order allow,deny
deny from all
</files>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

<files wp-config.php>
order allow,deny
deny from all
</files>

# END WordPress


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 13:55

Tu as donc bien mis :
Code: Tout sélectionner
AddType x-mapp-php5 .php
Options All -Indexes
<files .htaccess>
order allow,deny
deny from all
</files>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^itin[^e]raire/? http://example.org/itineraire/ [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

<files wp-config.php>
order allow,deny
deny from all
</files>

# END WordPress


Je viens de tester la règle, et elle fonctionne.

Sinon, le mot, c'est bien « itinéraire », ou c'est autre chose ? Tu es sur que c'est bien l'adresse avec le « é » qui est mis ?

Il faudra vérifier que WP n'écrase pas ta valeur.


JanoLapin
WRInaute accro
WRInaute accro
 
Messages: 4052
Inscription: 21 Sep 2008

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 15:02

Je viens de faire un essai avec le htaccess que tu indiques (merçi de ton aide, au passage): et cela ne marche pas !
Pour éviter les embrouilles, j'ai évidemment neutralisé le rép. de redirection example.org/itinéraire en le renommant

Par ailleurs, d'après 404notifier, l'url example.org/itinéraire/ va se traduire par la requête example.org/itin%C3%A9raire/
==> on peut comprendre que ton code ne marche pas avec cela, alors mais pourquoi alors le répêrtoire de redirection /intinéraire (avec un index.php comprenant une redir 301) fonctionne-t-il, lui :?:

Qu'en penser?
Quel serait le code correct pour rediriger l'url?


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 15:06

Bin la redirection fonction, je l'ai testé. Donc, ça vient d'autre chose.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 15:40

si l'adresse est codée en utf8, chaque caractère est codé sur 2 octets d'où le fait qu'il soit probable que la redirection sur 1 seul caractère pour remplacer le "e" ne fonctionne pas


JanoLapin
WRInaute accro
WRInaute accro
 
Messages: 4052
Inscription: 21 Sep 2008

Re: comment remplacer url avec accents dans htaccess

Message le Mer Mai 11, 2011 16:37

Dans le cas d'espèce, c'était un brouillon mail (codé avec Thunderbird en html normal), envoyé à quelqu'un sur sa boite yahoo qui a recopié et renvoyé à tout le monde depuis la même boite: aucune idée donc de l'encodage.
Quand je clique sur l'url du mail renvoyé à tout le monde, 404notifier m'indique que l'url appellée est example.org/itinéraire/

En tapant moi-même dans mon browser (avec utf-8 par défaut) l'expression example.org/itinéraire/, c'est bien l'url example.org/itin%C3%A9raire/ qui est appellée
C'est visible dans la barre d'adresse de FF, avant qu'il ne corrige de lui même et fasse apparaître example.org/itinéraire
404notifier m'indique la même chose.

Mon problème est donc bien de rediriger example.org/itin%C3%A9raire/ vers example.org/itineraire/

[résolu] comment remplacer url avec accents dans htaccess

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité