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

PHP & Base de données Discussion :

URL Rewriting dynamique


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut URL Rewriting dynamique
    Bonjour,

    Question très simple : est-il possible d'intégrer du PHP dans le fichier .htaccess ?

    La raison est la suivante : j'aimerai pouvoir générer le système d'URL Rewriting de manière dynamique en allant rechercher les infos dans une base de données, pour ne pas devoir écrire cela ligne par ligne.

    Possible ou pas ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 573
    Par défaut
    tu peux modifier le fichier .htaccess en PHP si tu veux mais peut-être que tu peux simplifier tout ça avec une expression régulière
    montre nous des exemples de ce que tu veux faire

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut
    Salut,

    Voici mon .htaccess actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Options +FollowSymlinks
    RewriteEngine on 
    RewriteRule   ^index.html$   ?sectioncourante=home  [L]
    RewriteRule   ^presentation-salle-des-fetes.html$   ?sectioncourante=presentation  [L]
    RewriteRule   ^agenda-locations.html$   ?sectioncourante=agenda  [L]
    RewriteRule   ^activites.html$   ?sectioncourante=activites  [L]
    RewriteRule   ^louer-la-salle-des-fetes.html$   ?sectioncourante=louer  [L]
    RewriteRule   ^plan-itineraire.html$   ?sectioncourante=plan  [L]
    RewriteRule   ^contactez-nous.html$   ?sectioncourante=contact  [L]
    Comme vous l'aurez compris, toutes mes pages utilisent index.php avec comme variable "sectioncourante" qui prend différentes valeurs.

    J'ai une DB dans laquelle j'ai :
    - un champ "url" qui correspond à l'URL ré-écrite (ex. : index.html) et
    - un champ "section" qui correspond au contenu de la variable "sectioncourante" (ex. : home)

    Avec du PHP / mySQL, je pourrai écrire quelque chose comme :

    ... tant qu'il y a quelque chose dans ma DB ...

    RewriteRule ^$result['url']$ ?sectioncourante=$result[section'] [L]

    ... y'a plus rien dans ma BD ...

    Le grand avantage pour moi serait que si j'ajoute une nouvelle page (comprenez, une nouvelle section), je devrai seulement la déclarer dans ma DB et la ré-écriture se ferait automatiquement dans mon fichier .htaccess.

    Merci de vos lumières :-)

  4. #4
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Pour générer ton fichier .htaccess :
    (j'ai pas testé le code)

    a chaque fois que tu ajoutera de nouveaux liens dans ta base, tu devra relancer ce script

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
      $texte =  "Options +FollowSymlinks\n";
      $texte .=  "RewriteEngine on\n";
     
      $req = mysql_query("Ici tu fait ta requete pour récupérer toutes tes infos");
      while($res = mysql_fetch_array($req)){
        $texte .=  "RewriteRule   ^".$res['url']."$   ?sectioncourante=".$res['section']."  [L]\n";
      }
     
      $fichier = ".htaccess";
      $id_fichier = fopen($fichier, "a+");
      fputs($id_fichier, $texte);
    ?>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut
    Ca fonctionne ...

    Juste un truc...

    Il semble ici qu'il écrit à la suite de ce qui est déjà présent dans le fichier. Comment faire pour qu'il efface le contenu du fichier et qu'il écrit seulement ensuite dedans ?

    Merci

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 573
    Par défaut
    il y a plus simple, il suffit que tu mettes cette ligne dans ton fichier .htaccess et ensuite dans la section "redirection" tu fais ta recherche dans la base de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.*)\.html$ ?sectioncourante=redirection&page=$1 [L]
    ainsi tu n'auras même plus besoin de modifier le fichier .htaccess

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut
    Bonsoir,

    Qu'est-ce que tu entends par la section "redirection" ?

    Merci

Discussions similaires

  1. Script ou appli. d'Urls rewriting (dynamiques)
    Par mozzlo dans le forum Référencement
    Réponses: 1
    Dernier message: 07/11/2010, 09h46
  2. URL rewriting dynamique
    Par serna dans le forum Apache
    Réponses: 7
    Dernier message: 21/03/2009, 11h11
  3. Réponses: 4
    Dernier message: 23/05/2008, 12h58
  4. URL Rewriting dynamique
    Par arnaud_verlaine dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 20/05/2008, 23h29
  5. [URL Rewriting] Du dynamique au static
    Par max44410 dans le forum Apache
    Réponses: 2
    Dernier message: 14/01/2008, 23h34

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