Php urlencode et Apache RewriteRule = 403 Forbidden

Discussion dans 'URL Rewriting et .htaccess' créé par jst, 23 Avril 2012.

  1. jst
    jst Nouveau WRInaute
    Inscrit:
    25 Novembre 2011
    Messages:
    29
    J'aime reçus:
    0
    Bonjour,

    Je n'arrive pas à encoder mes accents pour les passer dans les URLs.

    Je récapitule mon pb du moment:

    Je développe un site allemand, donc avec plein de umlauts (ü, ö, ä, ÿ).
    Je fais tourner ça sous un M.V.C PHP simple (voilà le contrôleur frontal):

    $module = dirname(__FILE__).'/modules/'.htmlspecialchars($_GET['module'].'/');
    //
    $action = (isset($_GET['action'])) ? htmlspecialchars($_GET['action']).'.php' : 'index.php';
    //
    if(file_exists($module.$action)){
    include($module.$action);
    }else{
    //echo $module.$action.'.php not found'."<br />";
    include('global/home.php');
    }

    J'ai mis en place un menu dynamique qui va chercher certains fichiers pour en afficher le nom dans les sous-menus (avec plein de ä ou de ö).

    J'ai mis en place une réécriture d'URL:

    RewriteRule ^admin-([a-z_]+)-([a-zA-Z0-9\._]+)\.html index.php?module=admin&action=$1&section=$2 [L]

    Si je laisse mes accents (ä, ö, ü...) Apache ne comprend rien, et si je tente d'encoder mon paramètre avec urlencode(), Apache m'affiche un gros 403...

    Quelqu'un de méga charitable pour m'aider ?
    Merci d'avance
    Sébastien
     
  2. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 952
    J'aime reçus:
    275
    Déjà pour un site allemand, je te conseillerais de faire à l'allemande, c'est à dire de transformer une fois pour toute les caractères accentués en leur équivalent typpographique sans umlauts :
    ö -> oe
    ü -> ue
    ä -> ae
    ÿ... t'es sûr ? A ma connaissance, en allemand, ça n'existe pas.

    L'avantage est d'avoir des urls propres dans les caractères bizarres. Switcher de l'un à l'autre est un réflexe, et tu remarqueras que Google gère assez bien les équivalences.

    Deuxièmement, il me semble que tu devrais dans la conception de ton appli différencier le nom du fichier de son affichage dans le menu

    Troisièmement, la conversion en caractères lisibles pour les browsers, ce n'est pas htmlentities mais urlencode.
     
  3. JanoLapin
    JanoLapin WRInaute accro
    Inscrit:
    21 Septembre 2008
    Messages:
    4 226
    J'aime reçus:
    0
    Peux-tu détailler, STP, Marie-Aude... j'ai peur de ne pas comprendre
     
  4. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 952
    J'aime reçus:
    275
    HTML entities va donner des &acutre; &amp; qui ne sont pas les caractères qui sont utilisées dans les urls pour remplacer les caractères spéciaux

     
  5. jst
    jst Nouveau WRInaute
    Inscrit:
    25 Novembre 2011
    Messages:
    29
    J'aime reçus:
    0
    C'est bien urlencode() que j'utilise oui.

    Pour ce qui est de ae ou oe, je profite du fait que tu semble avoir un peu d'expérience :) : Il vaut mieux les utiliser directement plutôt que de chercher à utiliser &oelig; etc... n'est-ce pas ?

    AU fait, bien que ne parlant pas allemand moi même et n'en ayant pas rencontré, &yuml existe bien oui.

    Bon pour autant, je ne sais toujours pas pourquoi Apache me renvoie un 403 dès que je tente d'encoder mes paramètres d'url...?

    EN plus La question que je me pose (je sais que ça déborde un peu du cadre), comment afficher mes menus dynamiques avec mes umlauts si je vire mes accents de mes fichiers et répertoires ? Obligé de passer par un tableau de correspondances ?
    Merci pour ces réponses
     
  6. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 952
    J'aime reçus:
    275
    Je ne vois pas d'urlencode() dans le code que tu as mis ?

    tu utilises ö (en utf8) ou son équivalent en html entitities dans le texte, et oe dans les urls

    ÿ existe en général. A ma connaissance pas en allemand, ou alors pour des noms propres étrangers. En revanche, ça existe en français ^^ ( D'ailleurs ce n'est même pas mentionné ici http://de.wiktionary.org/wiki/Wiktionary:Hauptseite )

    Oui tu fonctionnes avec une table de correspondance.
     
  7. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 207
    J'aime reçus:
    365
Chargement...
Similar Threads - Php urlencode Apache Forum Date
PHP v8.2 fonction utf8_decode déprécié Développement d'un site Web ou d'une appli mobile 15 Novembre 2022
Bien gérer un script PHP un peu long Développement d'un site Web ou d'une appli mobile 12 Octobre 2022
En PHP : enregistrer un id de page/user variable. Développement d'un site Web ou d'une appli mobile 3 Octobre 2022
Indent en mode PHP ? Développement d'un site Web ou d'une appli mobile 9 Juin 2022
Arborescence de classes PHP et séquentialité. Développement d'un site Web ou d'une appli mobile 16 Mai 2022
Afficher des infos depuis plusieurs page en PHP Développement d'un site Web ou d'une appli mobile 23 Mars 2022
Sites de scripts PHP, jQuery, Ajax, etc. Le café de WebRankInfo 20 Mars 2022
Détecter arrêt user d'un script PHP ? Développement d'un site Web ou d'une appli mobile 28 Décembre 2021
sessions PHP sans cookies ? Développement d'un site Web ou d'une appli mobile 26 Décembre 2021
Afficher la dernière version d'un fichier php ? Développement d'un site Web ou d'une appli mobile 8 Novembre 2021
PHP / CURL : interrogation page tiers ne fonctionne plus Développement d'un site Web ou d'une appli mobile 2 Octobre 2021
Actualiser un script php toutes les 10 secondes Développement d'un site Web ou d'une appli mobile 6 Septembre 2021
PHP : problème de comparaison égalité dans boucle FOR avec incrément décimal de 0.1 Développement d'un site Web ou d'une appli mobile 26 Août 2021
Cache Etag nginx et PHP ? Administration d'un site Web 7 Août 2021
Fichier avec ou sans extension php pour le référencement Crawl et indexation Google, sitemaps 3 Août 2021
mon code ne fonctionne pas pour masquer les .php URL Rewriting et .htaccess 31 Juillet 2021
Malware S.Susp.PHP.gen... Administration d'un site Web 15 Juillet 2021
La fonction mail (PHP) ne passe pas ! Demandes d'avis et de conseils sur vos sites 28 Juin 2021
Fonction récursive PHP. Développement d'un site Web ou d'une appli mobile 24 Avril 2021
Redirections .htm en .php URL Rewriting et .htaccess 16 Mars 2021