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 :

Redirection d'un sous domaine vers une page


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut Redirection d'un sous domaine vers une page
    Bonjour,

    Je souhaite pouvoir rediriger un sous domaine vers une page spécifique de mon site web mais je ne peux rediriger que vers la racine d'un dossier.

    J'ai ceci actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <VirtualHost *:80>
            ServerName publier-une-annonce-immobiliere.exposehome.com
            ServerAlias publier-une-annonce-immobiliere.exposehome.fr
            DocumentRoot "/var/www/exposehome"
    </VirtualHost>
    Comment faire pointé ce sous domaine vers page.php?action=1
    J'ai cherché dans google mais j'ai rien trouvé de concluant ?

    Pouvez vous m'aidez un petit coup ?

    Bonne journée

  2. #2
    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
    Absolument tout le sous-domaine ? Si oui, ajoute ceci dans ta conf de VH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule .* page.php?action=1 [L]
    Vérifie avant que mod_rewrite est activé.

  3. #3
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    Coucou,

    Merci de ta réponse. Au lieu de le mettre dans le VH puis-je le mettre dans le .htaccess ?

    Dans mon .htaccess il y a déjà plusieurs règles de réécriture alors jemet ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule demo.* page.php?action=1 [L]
    Donc si je te suis, je tape :
    demo.exposehome.fr sa ira dans page.php?action=1 ?

    C'est bien sa ?
    Mon objectif étant à terme de faire des sous domaines dynamique grâce aux règles d'écriture.

    PS: Je viens de tester cela n'a pas l'air de marcher...
    Mon domaine dans bind est configuré comme ceci :
    * A X.X.X.X
    Ce qui à pour effet de pointé à la racine du serveur ce qui est correct non?

    Je confirme que la réécriture ne marche pas que ce soir dans le virtual host ou dans le .htaccess. J'ai fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <VirtualHost *:80>
            RewriteEngine on
            RewriteRule demo.* page.php?action=1 [L]
    </VirtualHost>

    Question subsidiaire :
    J'ai écris ceci comme règle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9]+)-[a-zA-Z\-0-9]+\.htm$ page.php?action=15&idAnn=$1 [L]
    Quand je clique sur ce lien :
    http://127.0.0.1/exposeHome/11-A-LOU...tes-Centre.htm
    cela marche mais quand je tape :
    http://127.0.0.1/exposeHome/5-A-VEND...ndissement.htm

    Cela ne fonctionnement plus ?
    Est-ce à cause des espaces ?

    Bonne nuit à tous

  4. #4
    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
    Citation Envoyé par akrogames Voir le message
    Donc si je te suis, je tape :
    demo.exposehome.fr sa ira dans page.php?action=1 ?

    C'est bien sa ?
    Ce n'est pas aussi simple : demo.exposehome.fr n'apparaît pas dans ce qu'un RewriteRule teste par défaut (par défaut RewriteRule ne travaille que sur le chemin des URL). Il faut que tu utilises la règle que j'ai donnée mais avec une condition au préalable sur ce que le RewriteRule ne peut pas tester : le domaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTP_HOST} ^demo\.exposehome\.fr$
    RewriteRule .* page.php?action=1 [L]
    Citation Envoyé par akrogames Voir le message
    Mon domaine dans bind est configuré comme ceci :
    * A X.X.X.X
    Ce qui à pour effet de pointé à la racine du serveur ce qui est correct non?
    Aucune idée

    Citation Envoyé par akrogames Voir le message
    Je confirme que la réécriture ne marche pas que ce soir dans le virtual host ou dans le .htaccess.
    Je répète que c'est parce que le RewriteRule ne travaille pas par défaut sur le nom (de domaine) mais uniquement sur le chemin des URL.

    Citation Envoyé par akrogames Voir le message
    Question subsidiaire : ...
    Est-ce à cause des espaces ?
    A priori oui et du "è"

  5. #5
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    Tu as raison !

    Je suis tête de mule des fois

    Ceci marche correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTP_HOST} ^demo\.exposehome\.fr$
    RewriteRule .* http://page.php?action=1 [L]
    Maintenant j'ai deux questions.
    Quand je tape demo.exposehome.fr je suis redirigé vers http://page.php?action=1 et l'url qui s'affiche c'est bien http://page.php?action=1. Logique mais pour le référencement j'aurais besoin que l'url affiché soit demo.exposehome.fr

    Et j'essaye d'écrire la ligne suivante pour redirigé mon faux sous domaine vers la bonne page :
    quand on clic sur l'url suivante : http://8-annonce.exposehome.fr que je puisse être redirigé vers page.php?action=1&annonce=8

    J'ai écris sa mais sa ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteCond %{HTTP_HOST} ^*\.exposehome\.fr$
    RewriteRule ([0-9]+).* http://exposehome.fr/page.php?action=1&annonce=$1 [L]

    Tu peux m'aider encore un peu ?

    merci à toi en tous cas

  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
    Citation Envoyé par akrogames Voir le message
    Logique mais pour le référencement j'aurais besoin que l'url affiché soit demo.exposehome.fr
    Il faut faire comme j'ai marqué : ne pas mettre le http:// dans le second membre du RewriteRule. On peut quand même mettre un / devant page.php pour être sûr qu'Apache aille chercher la page page.php qui se trouve à la racine du site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTP_HOST} ^demo\.exposehome\.fr$
    RewriteRule .* /page.php?action=1 [L]
    Citation Envoyé par akrogames Voir le message
    Tu peux m'aider encore un peu ?
    Toujours pareil : RewriteRule ne travaille pas a priori sur le domaine, seulement le chemin, donc ton ([0-9]+) dans ton jeu de règle ne matche pas le 8 du hostname. Il faut aller ce chercher chiffre avec le RewriteCond et le référencer avec %1 ($1 matche le premier groupe de parenthèses du premier membre du RewriteRule, %1 celui du RewriteCond) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTP_HOST} ^([0-9]+)-annonce\.exposehome\.fr$
    RewriteRule .* http://exposehome.fr/page.php?action=1&annonce=%1 [L]
    Et pareil, si tu ne veux pas que le navigateur affiche http://exposehome.fr/page.php?action=1&annonce=8, il faut retirer http://exposehome.fr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTP_HOST} ^([0-9]+)-annonce\.exposehome\.fr$
    RewriteRule .* /page.php?action=1&annonce=%1 [L]

Discussions similaires

  1. Redirigez un nom de domaine vers une page en gardant l'url
    Par camcam8782 dans le forum Langage
    Réponses: 0
    Dernier message: 17/03/2011, 13h25
  2. Réponses: 1
    Dernier message: 30/06/2010, 16h58
  3. Réponses: 1
    Dernier message: 28/12/2007, 21h43
  4. Réponses: 1
    Dernier message: 10/11/2007, 12h12
  5. Réponses: 2
    Dernier message: 09/05/2006, 15h52

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