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] Sous Domaine + Variables


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut [URL REWRITING] Sous Domaine + Variables
    Hello à tous,
    Je suis en train de commencer à tâter un peu de l'url Rewriting, j'ai parcouru pas mal de threads et autres sites, mais je n'ai pas trouvé de réponse à ma question, aussi, je vous la soumets, j'suis sûr que vous saurez quoi en faire.

    Voilà le topo :
    Je travail en local pour le moment.

    Mon idée : Utiliser l'url rewriting pour faire des sous domaines virtuels (jusque là, tout va bien, mes sous domaines fonctionnent nickel). Je sais également faire du rewriting pour le $_GET de php. Ma question est la suivante :

    Est-il possible de faire une règle comprennant 1 / la redirection vers le sous domaine 2 / le passage des variables réécrites ? Ca doit être une histoire de RewriteCond, mais je ne suis pas très opé là dessus et je ne vois pas l'ordre, si c'est en cascade etc...

    Voici donc mon htaccess en l'état :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    RewriteEngine On 
     
    # v Sub (ok !)
    RewriteCond %{HTTP_HOST} ([a-z0-9A-Z]+).localhost
    RewriteRule ([a-z]+).$ index.php?page=%1
     
     
    # Variables (a marche po...)
    RewriteCond %{QUERY_STRING} ([a-z0-9A-Z]+).([a-zA-Z0-9])/([0-9]+),\$
    RewriteRule (.*)$([0-9]+),\$.html index.php?page=%1&id=%2
    Le résultat escompté étant le suivant :

    foo.localhost/ => localhost/index.php?page=foo
    foo.localhost/bar,blablablablabla.html => localhost/index.php?page=foo&id=bar

    Sachant que "id" est défini UNIQUEMENT si "page" l'est également.

    Merci 1000 Fois si vous pouvez m'éclairer.

  2. #2
    Expert éminent sénior

    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
    Points : 17 778
    Points
    17 778
    Par défaut
    Qu'est-ce que c'est que cette règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule (.*)$([0-9]+),\$.html index.php?page=%1&id=%2
    Ce n'est pas en mettant des dollars (ancre ou non) qu'elle va fonctionner et vous forcez également la présence de caractères numériques qui ne figurent pas dans vos exemples

    D'après vos exemples, j'aurais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RewriteCond %{HTTP_HOST} ([a-z0-9A-Z]+).localhost
    RewriteRule ^$ index.php?page=%1 [L]
     
    RewriteCond %{HTTP_HOST} ([a-z0-9A-Z]+).localhost
    RewriteRule ^([^,]+),.+\.html$ index.php?page=%1&id=$1 [L]
    (non testé)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    (En l'occurence, bar est une valeur strictement numérique. C'est pour celà qu'on retrouvait un ([0-9]+)).

    Quoi qu'il en soit, c'est parfait, et le code que vous m'avez donné fonctionne à merveille

    Merci beaucoup donc.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    Bonjour, je suis actuellement sur le meme problème.

    J'essaye de faire une réécriture d'url pour passer de toto.localhost à un fichier index.php?nom=toto

    J'ai donc repris le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTP_HOST} ([a-z0-9A-Z]+).localhost
    RewriteRule ([a-z]+).$ index.php?nom=%1
    J'ai placé mon fichier à la racine de mon espace de développement et j'ai bien décommenté la ligne dans le httpd.conf pour activer l'url rewriting.

    Mais lorsque je rentre l'url toto.localhost, je suis renvoyé vers www.toto.localhost/ et bien sur Serveur introuvable. Faut-il faire des modification dans le fichier hosts de windows? ou dans le httpd.conf?

    Je ne suis pas au point sur ces questions, et je n'arrive pas à trouver de réponses adéquates sur internet.

    Merci de vos réponses..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [URL rewriting] Sous-domaine et multi-variables
    Par guillaumeIOB dans le forum Apache
    Réponses: 1
    Dernier message: 22/10/2012, 23h15
  2. [URL rewriting] Sous-domaine et variables d'URL
    Par cozy_cookie dans le forum Apache
    Réponses: 5
    Dernier message: 08/07/2010, 10h20
  3. Réponses: 7
    Dernier message: 10/07/2008, 01h52
  4. [URL Rewriting] sous domaine marche une fois sur 2
    Par eMeRiKa dans le forum Apache
    Réponses: 11
    Dernier message: 18/02/2008, 15h09
  5. Réponses: 1
    Dernier message: 06/12/2007, 17h13

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