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] Réécrire le chemin pour la partie query string


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Par défaut [URL Rewriting] Réécrire le chemin pour la partie query string
    Bonjour à tous,

    Je suis nul en expression régulière, et je cherche à faire ça dans un htaccess pour de la réécriture d'url :

    transformer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://ssDomaine.domaine.com/mafonction?param1=val1&param2=val2
    en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://ssDomaine.domaine.com/index.php?function=mafonction&param1=val1&param2=val2
    sachant que le nombre de paramètres est variable...

    Vous avez une idée ?

    Merci pour tous les tuyaux.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Plus ou moins quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([^.]+)$ index.php?function=$1 [QSA]


    L'option QSA étant importante puisqu'elle retransmettra les variables de l'URL (query string) lors de la réécriture (sinon elle ne le ferait pas ici puisqu'on y touche en ajoutant le paramètre function).

  3. #3
    Membre éclairé Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Par défaut
    Super, merci ça marche impeccable.
    Il va vraiment falloir que je me mette un jour aux expressions régulières

  4. #4
    Membre éclairé Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Par défaut
    Bonjour,

    Je fais face à une nouvelle difficulté : ça marche bien quand tout est en GET.
    Maintenant, je dois autoriser les requêtes de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://ssDomaine.domaine.com/mafonction
    et l'envoi en même temps des paramètres en POST

    pour transformer en url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://ssDomaine.domaine.com/index.php
    et recevoir le reste en POST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $_POST=array{
    "fonction" => mafonction, //récupéré de l'url
    "param2" => $_POST['param2'],
    ...
    }
    Avec mon htaccess, il semble que je ne peux pas récupérer les POST...

    Merci d'avance si vous avez une solution.

  5. #5
    Membre éclairé Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Par défaut
    Pour faire plus simple, comment dans un htaccess :

    1. quelle que soit la méthode (get/post) transformer en post
    2. transformer la page appelée (qui est en fait /mafonction) en $_POST
    3. rediriger tout ça vers index.php avec les paramètres post, car je perds mes $_post dans la redirection...


    Voilà, pour moi c'est un vrai casse tête...

    Merci...

  6. #6
    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
    Par défaut
    Tu peux pas "transformer en POST" : la réécriture d'URL ça modifie l'URL reçue par Apache, quelque soit le verbe HTTP utilisé avec (GET, POST, PUT, etc.). Une fois qu'Apache a construit l'URL finale, il passe la main au module qui doit gérer cette URL et c'est tout.

    Donc, pour revenir à ton cas, on ne peut pas ajouter des paramètres de POST. Mais ceci dit, c'est pas forcément grave : tu peux utiliser $_REQUEST à la place de $_POST, comme ça, tu auras tous tes paramètres, ou encore écrire une finction "get_param" qui va chercher les paramètres dans $_GET et $_POST (c'est ce que je fais, personnellement).

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/07/2009, 04h08
  2. Réponses: 3
    Dernier message: 08/03/2009, 10h58
  3. [URL Rewriting] Besoin d'aide pour règle un peu longue
    Par yvon_huynh dans le forum Apache
    Réponses: 5
    Dernier message: 23/06/2008, 12h12
  4. Réponses: 7
    Dernier message: 20/12/2007, 11h52
  5. [Url Rewriting] Réécrire la partie query string
    Par 7studio dans le forum Apache
    Réponses: 5
    Dernier message: 23/11/2007, 15h55

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