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

Apache Discussion :

URL rewriting, pages dynamiques et requête SQL


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 39
    Points : 24
    Points
    24
    Par défaut URL rewriting, pages dynamiques et requête SQL
    Bonjour a tous,

    J'ai cherché sur le net mais je n'ai pas trouvé d'explications a mon problème alors que d'autres l'ont forcement eut ^^...

    J'ai des url de ce type la : monsite/forum/topic=2
    Je souhaiterai avoir : monsite/forum/nom-du-topic-2

    Mais d'après ce que j'ai entendu dire il est impossible de faire des requêtes dans le .htaccess et je ne vois pas du tout comment faire.

    Pour récupérer le nom de l'article il me suffit de parser l'url pour récupérer l'id puis de faire une requête sql.

    Sur certains tuto on peut voir 'utiliser un script PHP' mais quel genre de script ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Alors, attention, Apache ne sait pas exécuter de SQL, il faut du Web de base. Si tu veux exécuter une requête SQL, il faut passer par PHP. Ce que tu peux faire avec Apache aussi, c'est changer la "signification" des URL demandées pour qu'elles soient plus compréhensibles par PHP, par exemple pour extraire le 2 de l'URL /forum/nom-du-topic-2 et le transformer en paramètre d'URL /forum/?topic=2. C'est ensuite le script qui se cache derrière cette dernière URL qui fera la requête SQL. Donc, on aura :

    /forum/nom-du-topic-2 => par .htaccess, Apache transforme cette URL en /forum/?topic-2 => Apache passe la main à /forum/?topic=2 => /forum/index.php est exécuté, récupère le paramètre d'URL topic (qui vaut 2), fait la requête SQL et renvoie un résultat

    Citation Envoyé par Inh[Star
    Noz]Pour récupérer le nom de l'article il me suffit de parser l'url pour récupérer l'id puis de faire une requête sql.
    Ca se fait par .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule -([0-9]+)$ index.php?topic=$1 [L]
    A mettre dans le .htaccess qui se trouve dans le répertoire forum.

    Citation Envoyé par Inh[Star
    Noz]Sur certains tuto on peut voir 'utiliser un script PHP' mais quel genre de script ?
    Dans index.php (qui est indiqué dans le .htaccess), tu récupères le paramètre d'URL topic ($_GET["topic"] par exemple) et tu l'utilises dans une requête SQL.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    Merci de ta réponse mais je n'ai pas tout saisi.

    Au depart j'ai une url : /forum/topic-2 et non pas /forum/nom_du_topic-2
    Je n'ai donc pas le nom du topic. Si je le veux j'ai besoin de faire une requête SQL.

    Si je fais ce que tu m'as dis avec un .htaccess sa ne résoudra pas mon problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule -([0-9]+)$ index.php?topic=$1 [L]
    je vais etre redirige vers la meme page, non ?

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Clarifions (enfin, je vais essayer !) les choses. L'URL que traite Apache est l'URL demandée par l'utilisateur. Cette URL peut être /forum/topic-2 ou /forum/nom_du_topic-2, peu importe tant qu'on y trouve l'information qu'on veut, à savoir le 2. Apache va donc permettre de passer de /forum/topic-2 ou /forum/nom_du_topic-2 à index.php?topic=2. C'est plutôt pas mal : qu'il y ait le nom du topic ou pas, ça marchera.

    Maintenant, d'où vient l'URL demandée par l'utilisateur, celle qui figure dans les pages Web du forum ? De PHP, et pas d'Apache. La nuance est importante : ce n'est pas un .htaccess qui te permet de construire l'URL /forum/nom_du_topic-2 mais PHP. La réponse à ta question est donc là : fais en sorte que ton code PHP génère les liens qui vont bien (<a href="/forum/nom_du_topic-2">), et Apache fera le reste tout seul. Donc s'il y a une requête SQL à exécuter, c'est dans ton code PHP qu'elle doit être.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    Ah merci beaucoup ! Ton explication est bien plus claire pour moi ^^

    Je vais tester sa, mais pas facile de modifier cette partie de code dans le logiciel forum. Je dirais si j'ai réussi et je posterai mon htaccess

Discussions similaires

  1. WebMethod et retour dynamique de requête SQL
    Par Zalathorn dans le forum Services Web
    Réponses: 0
    Dernier message: 29/05/2009, 18h03
  2. Url Rewriting + pages dynamique
    Par Ruddy dans le forum ASP.NET
    Réponses: 5
    Dernier message: 30/12/2008, 12h44
  3. [URL Rewriting] Du dynamique au static
    Par max44410 dans le forum Apache
    Réponses: 2
    Dernier message: 14/01/2008, 23h34
  4. [URL Rewriting] page blanche
    Par HwRZxLc4 dans le forum Apache
    Réponses: 7
    Dernier message: 03/08/2007, 22h30
  5. [PHP-JS] Menu vertical dynamique (source requête SQL)
    Par nbelg27 dans le forum Langage
    Réponses: 2
    Dernier message: 10/01/2007, 15h31

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