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 :

[Apache] mod_rewrite & dossiers virtuels


Sujet :

Apache

  1. #1
    Membre à l'essai

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 18
    Points : 22
    Points
    22
    Par défaut [Apache] mod_rewrite & dossiers virtuels
    Salut à tous.

    Je cherche à inclure des "dossiers virtuels" avec mod_rewrite afin de remplacer mes query string.

    une adresse type normalement serais :

    index.php?param1=1&param2=2&param3=3

    ce que je cherche à faire serais quelque chose du type:

    [fichier]/param1/1/param2/2/param3/3

    ou

    index/param1/1/param2/2/param3/3.html

    ou bien

    index/param1/1/param2/2/param3/3/index.html

    un exemple concret donnerait ainsi:

    http://mondomaine.com/article/rubrique/1/ID/1.html

    Le problème se posant sur un fait, je peux toujours créer des rêgles similaire à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.+)/(.+)/(.+)/(.+)/(.+).html$ index.php?act=$1&$2=3&$4=$5
    là ou la difficulté se présente c'est de considérer les paramètres de manière illimitée. Et donc de non seulement prendre en considération les variables présentes mais aussi à rajouter (je ferai quand même pas 26 parenthèses pour la potentialité de rajouter 26 paramètres )

    Merci à tous pour l'aide

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    J'ai moi même était confronté à ce style de problème, je me suis arretté sur une syntaxe du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /var1_val1_comment1/var2_val2_comment2/...
    de manière illimité, si tu est famillié avec les regexp, tu devrais pouvoir le modifier facilement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteRule ^([^/_.]+)_([^/_.]+)(_[^/.]+)?/(.*\.((s?x?html?)|(php[0-9]?)|!))$ /$4?$1=$2 [QSA,N]
     
    RewriteRule ^([^/_.]+)_([^/_.]+)(_[^/.]+)?\.((r?s{0,2}x?(ht)?m?l?)|(php[0-9]?)|!)$ /?$1=$2 [QSA,L]
    le \.((r?s{0,2}x?(ht)?m?l?)|(php[0-9]?)|!) est là uniquement pour restreindre les extensions possibles à des extension vraissemblables un .* pourrait le remplacer sans problème... l'avantage de ça :

    possibiliter d'annuler le URL_RW en donnant un nom de dossier sans _
    possibiliter de comment une variable, du style : page_1_accueil, $_GET['page'] vaut alors 1, accueil est ignoré
    nombre d'arguments illimité grâce à la combinaison [QSA,N]

    incovénient :

    pas de _ dans les noms de variables ou leurs valeurs...

Discussions similaires

  1. mod_rewrite : dossier virtuel
    Par Invité dans le forum Apache
    Réponses: 0
    Dernier message: 15/09/2014, 08h34
  2. Recherche Script dossier virtuel a la facon explorateur xp
    Par ideal dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 31/07/2006, 12h21
  3. [Apache] Probleme acces dossier
    Par jak0 dans le forum Apache
    Réponses: 3
    Dernier message: 26/01/2006, 13h21
  4. Réponses: 2
    Dernier message: 20/01/2006, 17h08
  5. [Apache] dossiers virtuels
    Par secteur_52 dans le forum Apache
    Réponses: 2
    Dernier message: 26/10/2005, 12h11

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