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

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par JanoLapin, 10 Mai 2011.

Tags:
  1. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    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:
    Redirectpermanent /itinéraire/ http://example.org/itineraire/
    Quel est le bon code à utiliser, SVP ?

    Merçi de votre aide
     
  2. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    j'ai essayé aussi avec la syntaxe suivante, là encore sans résultat
    Code:
    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
     
  3. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    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 ^^
     
  4. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 361
    J'aime reçus:
    2
    Re: comment remplacer url avec accents dans htaccess

    Et la solution de bourrin de créer un fichier itinéraire avec une redirection php dans l'en tête ?
     
  5. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    @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
     
  6. Dolph
    Dolph WRInaute impliqué
    Inscrit:
    1 Mars 2011
    Messages:
    556
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    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.
     
  7. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    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:
    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/ ».
     
  8. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    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:
     
  9. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    Il y a moyen de voir tout le fichier htaccess ?
     
  10. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    bien sur:
    Code:
    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
    
     
  11. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    Tu as donc bien mis :
    Code:
    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.
     
  12. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    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?
     
  13. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    Bin la redirection fonction, je l'ai testé. Donc, ça vient d'autre chose.
     
  14. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    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
     
  15. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    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/
     
  16. Amauri
    Amauri WRInaute occasionnel
    Inscrit:
    7 Avril 2011
    Messages:
    314
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    En étant plus large :
    Code:
    RewriteRule ^itin(.*)raire(/|)$ http://example.org/itineraire/ [L,R=301]
     
  17. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    Merçi de ta proposition, malheureusement, ça entraine une erreur 500 chez moi
     
  18. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    il ne serait pas sur free.fr ton site ?
     
  19. Amauri
    Amauri WRInaute occasionnel
    Inscrit:
    7 Avril 2011
    Messages:
    314
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    Yep en effet, ajoute :

    Code:
    RewriteCond %{REQUEST_URI} !^/itineraire/$ [NC]
    Sinon il redirigera en boucle -> erreur 500 ;)
     
  20. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    @leonick: non, c'est du 1-1

    @amauri: qd tu dis ajoutes, je garde tout de même ta proposition précédente ou seulement la seconde?
     
  21. Amauri
    Amauri WRInaute occasionnel
    Inscrit:
    7 Avril 2011
    Messages:
    314
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    Les deux, la première ligne dit "si l'adresse de la page est différente de /itineraire/" alors "redirection de '/itin(*joker*)raire/' vers '/itineraire/'".

     
  22. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    erreur 500 à nouveau. Pour vérif, voilà le htaccess utilisé
    Code:
    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 /
    RewriteCond %{REQUEST_URI} !^/itineraire/$ [NC]
    RewriteRule ^itin(.*)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
    
    (bien sur j'avais pris sopin d'adapter l'url à celle de mon site)
     
  23. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    ou juste un
    Code:
    RewriteRule ^itin[^e]+raire/?$ /itineraire/ [L,R=301]
    qui devrait suffire
    voire
    Code:
    RewriteRule ^itin[^e]{1,2}raire/?$ /itineraire/ [L,R=301]
    si on suppose que le caractère puisse être codé sur 2 octets.
    PS : pas besoin de parenthèses, car on n'a pas besoin de capturer le contenu du masque
     
  24. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    Merçi, Leonick, tes deux propositions marchent aussi bien l'une que l'autre. En cliquant sur le lien ou en tapant directement depuis un navigateur.

    Une raison d'en choisir une plus que l'autre ?
     
  25. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    la 2° est moins énergivore, car on ne permet qu'un ou 2 caractères, alors que la 1° peut prendre le nombre de caractères qu'elle veut et fera donc tester à apache toutes les url commençant par "itin"
     
  26. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 249
    J'aime reçus:
    0
    Re: comment remplacer url avec accents dans htaccess

    @Leonick: j'avais spontannément retenu la seconde. C'ets à l'oeil nu plus rapide en tout cas que la solution "sauvage" du réperoire de redirection.

    Un grand merçi à tous (tes) pour votre aide, qualifiée et suivie.
    J'espère que ce topic pourra aussi aider d'autres membres.

    ...si un modo veut bien passer le titre en [résolu]?
     
Chargement...
Similar Threads - [résolu] remplacer accents Forum Date
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[Résolu] Redirection 301 FR vers EN sur Prestashop uniquement sur outils Google ? Problèmes de référencement spécifiques à vos sites 11 Septembre 2017
[résolu] Passage à HTTPS, comment tester une page ? Développement d'un site Web ou d'une appli mobile 7 Septembre 2017
[Résolu] Redirection d'une famille d'URL URL Rewriting et .htaccess 9 Mars 2017
[Résolu] Diaporama et SEO Débuter en référencement 17 Janvier 2017
[résolu]Redirection monsite.fr/index.html sur monsite.fr et seo URL Rewriting et .htaccess 16 Janvier 2017
[resolu]Publicité facebook lié au compte instagram Facebook 12 Décembre 2016
[résolu] Récupérer des valeurs issues de javascript pour les mettre en base MySQL Développement d'un site Web ou d'une appli mobile 18 Juillet 2016
[résolu] Faire une redirection sauf pour mon adresse IP URL Rewriting et .htaccess 15 Juin 2016
[Résolu] 2 descriptions pour une même url selon requête Crawl et indexation Google, sitemaps 1 Juin 2016