IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

URL Rewrite : par PHP ou par mod_rewrite ?


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut URL Rewrite : par PHP ou par mod_rewrite ?
    Bonsoir,

    Ce message peut concerner à la fois la langage PHP et Apache, je le poste donc dans les généralités.

    Depuis quelques temps je passe au crible certaines applications PHP (simplement pour ma culture perso !), en ce moment même, Plume CMS et DotClear, qui se ressemblent...

    ...Ces deux applications semblent intégrer de manière native un système d'URL rewriting, qui n'est pas basé sur le module Rewrite (mod_rewrite) de Apache (ou similaire), mais sur une implémentation PHP/SGBD...

    Le code source n'est pas très lisible (et peu documenté), donc difficile de décortiquer la chose..., j'ai une petite idée de la manière dont c'est pensé, mais ça reste assez flou, quelqu'un à d'amples infos concernant cette manière de faire ?

    Pour les spécialistes du domaine, que pensez-vous d'une telle méthode ? En dehors du fait qu'elle puisse être employée sur un serveur qui n'utilise pas mod_rewrite, quel est son intéret ?


    Merci
    Dernière modification par Invité ; 29/06/2006 à 11h16.

  2. #2
    Futur Membre du Club
    Profil pro
    Aaa
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Aaa

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonsoir

    Je ne sais pas comment celà est fait dans DotClear ou Plume CMS, mais je suppose qu'ils utilisent une page d'erreur personnalisée (je ne connais pas d'autre moyen).

    Cette méthode consiste à faire des liens vers des pages qui n'existent pas. Le serveur va alors appelé la page d'erreur 404 qui se trouve être une page contenant du PHP. Il est alors facile de généré la page souhaité en utilisant la variable $_SERVER['REQUEST_URI'] pour savoir quelle page à été demandée.

  3. #3
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par targuan
    Bonsoir

    Je ne sais pas comment celà est fait dans DotClear ou Plume CMS, mais je suppose qu'ils utilisent une page d'erreur personnalisée (je ne connais pas d'autre moyen).

    Cette méthode consiste à faire des liens vers des pages qui n'existent pas. Le serveur va alors appelé la page d'erreur 404 qui se trouve être une page contenant du PHP. Il est alors facile de généré la page souhaité en utilisant la variable $_SERVER['REQUEST_URI'] pour savoir quelle page à été demandée.
    Bonjour
    Si mes souvenirs sont bons, pour faire une page 404 personnalisée il faut aussi un .htaccess.

  4. #4
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Je pense que le principe est plus simple.
    Il suffit de mettre le nom de sa page et ensuite de separer chacun des parametre par des /

    Ensuite, on explose le $_SERVER["REQUEST_URI"]; qui correspond a tout se qui se trouve derriere le nom du script


    donc si dans l'url tu as :

    http://www.monserveur/index.php/val1/val2/val3

    le $_SERVER["REQUEST_URI"] contiendra val1/val2/val3

    il suffit de faire un petit explode pour retrouver chaque valeur individueelement.

    Si tu connais la ce que represente la valeur en fonction de la position, tu as gagne.

    Apres tu peux etoffer en mettant cle1/val1/cle2/val2 et dans ce cas, plus besoin de savoir a quoi correspondent les positions;
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par stunti
    Je pense que le principe est plus simple.
    Il suffit de mettre le nom de sa page et ensuite de separer chacun des parametre par des /

    Ensuite, on explose le $_SERVER["REQUEST_URI"]; qui correspond a tout se qui se trouve derriere le nom du script


    donc si dans l'url tu as :

    http://www.monserveur/index.php/val1/val2/val3

    le $_SERVER["REQUEST_URI"] contiendra val1/val2/val3
    C'est que j'ai pensé aussi, un simple parsing de REQUEST_URI à la recherche d'élément considérés comme valides, mais apparament l'hypothèse de targuan se tient puisque il y a aussi (effectivement) une gestion un peu spéciale de QUERY_STRING à partir d'un fichier d'erreur 404 personnalisé et du système de template...

    ... Petite précision pour Eusebius, lorsque j'ai parlé de "basé sur .htaccess", j'entendais par là, basé sur le module Rewrite de Apache (ou similaire), désolé pour la confusion...C'est corrigé.

  6. #6
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    le probleme du 404, c'est qu'apache intervient a chaque fois et qu'il devient plus difficile de traite les vraie erreur 404. (invisible dans le access.log par exemple)
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

Discussions similaires

  1. [URL rewriting] Remplacer un mot par un autre
    Par isa150183 dans le forum Apache
    Réponses: 1
    Dernier message: 23/11/2009, 09h56
  2. Réponses: 4
    Dernier message: 30/06/2009, 18h39
  3. [URL Rewriting] rediriger .php vers .html
    Par Gunner4902 dans le forum Apache
    Réponses: 8
    Dernier message: 27/12/2007, 08h59
  4. [URL Rewriting] index.php?var=2 > kiki.php?tutu=2
    Par gregeza@hotmail.com dans le forum Apache
    Réponses: 5
    Dernier message: 13/08/2007, 15h29
  5. URL Rewriting ou PHP ?
    Par V_R46 dans le forum Langage
    Réponses: 5
    Dernier message: 22/05/2006, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo