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 dans htaccess


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Points : 26
    Points
    26
    Par défaut URL Rewriting dans htaccess
    Salut a tous,

    Je souhaite changer l'adresse de mes pages afin par exemple que index.php?p=about devienne /about/

    J'ai tenté d'adapter a mon site un exemple trouvé dans un tutoriel : RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ /articles/article.php?id=$1&rubrique=$2 [L]

    mais sans connaitre les expressions regulieres forcement j'arrive pas a grand chose.

    Toutes mes pages sont au format : index.php?p=trucbidule

    Si une bonne ame pouvait me donner l'expression reguliere qui va bien pour mettre dans mon htaccess ca serait top of the pops.

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Bonjour,

    essaye un truc du genre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^page-(.[a-zA-Z0-9]+)\.html$ index.php?p=$1 [L]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Points : 26
    Points
    26
    Par défaut
    Ca ne semble point marcher !

    Mon .htaccess contient actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^page-(.[a-zA-Z0-9]+)\.html$ index.php?p=$1 [L]
    (je precise que le rewriting de mes autres sites Wordpress fonctionne sur mon serveur local comme sur mon serveur online)

    J'ai meme pas de message d'erreur ni rien. Ca ne change juste rien o_O

  4. #4
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2008
    Messages : 71
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par zibizibi2 Voir le message
    Ca ne semble point marcher !

    Mon .htaccess contient actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^page-(.[a-zA-Z0-9]+)\.html$ index.php?p=$1 [L]
    (je precise que le rewriting de mes autres sites Wordpress fonctionne sur mon serveur local comme sur mon serveur online)

    J'ai meme pas de message d'erreur ni rien. Ca ne change juste rien o_O

    Le zend framework utilise ce genre de ré-écriture, et le système est plutôt simple :

    Dans ton .htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    Ces règles permettent de rediriger toutes les requêtes vers des ressources qui n'existent pas sur ton serveur vers ton index.php

    Dans ton code PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
     
    $req = $_SERVER['REQUEST_URI'];
     
    $reqParams = explode('/',$req); //chaque valeur du tableau correspond à un paramètre
    Attention, c'est juste un snippet pour donner l'idée générale.

    Ce système te permet d'avoir des url du style http://mon.server/page/about/ tout en gardant la compatibilité avec les fichiers existants (pas de conflit avec les ressources, comme http://mon.server/img/logo.png)

    Après, il faut sécuriser le tout, et mesurer les performances (je pense que le traitement en PHP est un peu plus long que par Apache, mais s'il est acceptable, la complexité est moindre (pas de regex complexe).

    PS : Pour qu'Apache prenne en compte le .htaccess, il faut que la directive AllowOverride ne soit pas à "none" dans le fichier de conf du vhost. Et pour les performances, si tu peux, place tes règles de ré-écriture dans le fichier de conf du vhost directement.

    -Benjamin

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Points : 26
    Points
    26
    Par défaut
    Merci pour ton aide Ben mais ta solution est un peu trop evoluée pour moi. J'ai bien pasté ton code dans mon .htaccess, mais que suis-je sensé faire avec la variable $reqParams dans mon code PHP ?

  6. #6
    Membre averti Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Points : 329
    Points
    329
    Par défaut
    Je souhaite changer l'adresse de mes pages afin par exemple que index.php?p=about devienne /about/
    si tu veux faire exactement ca alors voici le code:
    RewriteRule ^about$ index.php?p=about [L]

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/03/2015, 08h16
  2. URL Rewriting dans le fichier .htaccess
    Par moukit233 dans le forum Apache
    Réponses: 2
    Dernier message: 21/10/2013, 11h11
  3. url rewriting dans htaccess
    Par dl_jarod dans le forum Apache
    Réponses: 1
    Dernier message: 04/11/2008, 17h51
  4. Réponses: 4
    Dernier message: 19/10/2008, 18h17
  5. Réponses: 5
    Dernier message: 27/03/2008, 16h45

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