1. ⭐⭐⭐ Grosse PROMO en cours sur ma plateforme SEO My Ranking Metrics
    Rejeter la notice

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 372
    J'aime reçus:
    2
    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 250
    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 372
    J'aime reçus:
    2
    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 372
    J'aime reçus:
    2
    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:
    8 808
    J'aime reçus:
    241
Chargement...
Similar Threads - Php urlencode Apache Forum Date
Framework JS, template html/php ou Wordpress ? Débuter en référencement 26 Octobre 2019
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 14 Septembre 2019
PHP : checkdnsrr (MX) et domaine yahoo.fr Développement d'un site Web ou d'une appli mobile 5 Septembre 2019
Migration site PHP vers Gatsby : quelques questions Problèmes de référencement spécifiques à vos sites 22 Août 2019
Rediriger sujet phpBB3 vers Vanilla 3 URL Rewriting et .htaccess 6 Août 2019
JS Ajax PHP e-MAIL Développement d'un site Web ou d'une appli mobile 17 Juin 2019
récupérer id en php sans lien Développement d'un site Web ou d'une appli mobile 25 Avril 2019
Autocomplete php avec 36000 résultats possible Développement d'un site Web ou d'une appli mobile 24 Mars 2019
Erreur PHP Fatal error: Allowed memory size of ... bytes exhausted Demandes d'avis et de conseils sur vos sites 23 Mars 2019
Tri tableau array en PHP Développement d'un site Web ou d'une appli mobile 26 Février 2019
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice