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 :

[.htaccess] Simuler le comportement d'un vhost ?


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 26
    Points
    26
    Par défaut [.htaccess] Simuler le comportement d'un vhost ?
    Bonjour à tous !

    N'ayant pas le vocabulaire ni les connaissances suffisantes je me permet de poser ma question ici.

    Je dispose d'un dédié clé-en-main (donc pas d'accès root ) dont la structure se défini comme telle :
    /rien à la racine
    /monportfolio/
    /clients/client1/projet1
    /clients/client2/projet1...

    jusqu'ici tout allait bien sauf qu'un "client3/projet1" veut utiliser son url de type projet1.client3.com qu'il administre (et dont je n'ai pas du tout la main) pour le projet.
    En lui livrant seulement mon ip ce sous-domaine va pointer à la racine et ne disposant pas des accès pour faire un vhost dans mon httpd.conf, je me retrouve coincé...

    Est-il possible qu'à la racine du serveur il y ai un htaccess qui dise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    si url = projet1.client3.com
    afficher le contenu de clients/client3/projet1
    Ou si vous avez un autre moyen je suis totalement à l'écoute !

    un (très) grand merci d'avance !

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par lifecraft Voir le message
    Je dispose d'un dédié clé-en-main (donc pas d'accès root )
    C'est possible, ça ??? Je croyais que le principe du dédié c'était d'avoir tous les droits sur le serveur. Quelle est la différence avec un mutualisé, dans ce cas ?

    Pour revenir à la demande, si tu n'as pas d'accès root, oui, tu dois pouvoir t'en sortir avec un .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on
     
    RewriteCond %{HTTP_HOST} projet1.client3.com
    RewriteRule (.*) clients/client3/projet1/$1 [L]
    Il se peut que ça ne marche pas, je n'ai pas testé (je crains une erreur 500 due à une boucle infinie). Et attention aux liens dans le code HTML.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Merci pour la réponse et oui c'est possible chez 1&1... la différence c'est juste que tu as un dédié lol :/ je suis dégouté d'avoir pris ça mais bon l'erreur est faite...

    Je teste dès que possible. Un grand merci !

    Comment devront être les liens dans le HTML du coup ?

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Honnêtement, je ne sais pas trop, car j'imagine que les liens sont calculés de la même manière pour autres projets. Généralement, on essaie de mettre des liens relatifs (src="rep/image.jpg" ou src="../../rep/image.jpg") comme ça tu peux mettre le site dans n'importe quel répertoire, mais il faut gérer les ../ éventuels. Sinon, tu peux mettre des URL relatives à la racine du site (src="/rep/image.jpg") mais cela suppose que les ressources sont toutes dans le même répertoire pour tous les projets ou bien que la moulinette qui calcule ces URL prend en compte le fait que le chemin clients/client3/projet1/ n'est pas présent dans l'URL.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    D'accord, je viens d'essayer et comme tu l'as crains, l'erreur 500 a pointé le bout de son nez.

    J'ai trouvé sur internet ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^sub\.domain\.fr$ 
    RewriteRule ^(.+) %{HTTP_HOST}$1 [C] 
    RewriteRule ^sub\.domain\.fr(.*) /clients/client3/projet1/$1 [NS]
    Je ne vois pas la différence mais j'obtiens une erreur 403 : L'accès au fichier requiert une autorisation.

    Je précise que dans /projet1/ il n'y a, pour le moment, qu'une page html avec css et images.

    encore 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
    Points : 12 977
    Points
    12 977
    Par défaut
    Je ne vois pas de différence non plus à part que ça a l'air plus compliqué. Je ne comprends pas pourquoi ça donne une erreur 403 et pas une erreur 500 (a priori à cause du flag NS). Il y a quoi dans le fichier error_log ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    J'ai mis le flag [L] pour tester et la 403 reste.

    J'ai honte d'avoir choisi cette offre d'hébergement, il n'y a pas d'error_log juste des logs access et ftp...

    Je ne peux pas aider davantage

    Merci

  8. #8
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Meuh si, il y a bien davantage !! Tu ne nous as pas tout dit ! J'ai fait le test chez moi et j'ai également une erreur 403 mais avec un message Apache très long et très instructif :
    Forbidden

    You don't have permission to access /clients/client3/projet1/clients/client3/projet1/clients/client3/projet1/clients/client3/projet1/clients/client3/projet1/clients/client3/projet1/clients/client3/projet1/clients/client3/projet1/clients/client3/projet1/clients/client3/projet1/index.php/.../client3/projet1/index.php on this server.
    Cette trace signifie exactement ce que je craignais : une boucle infinie. Il faut ajouter une condition pour arrêter la réécriture. Du coup, j'en reviens à ma proposition initiale beaucoup moins alambiquée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on 
    RewriteCond %{HTTP_HOST} sub.domain.fr
    RewriteCond %{REQUEST_URI} !^/clients/client3/projet1/
    RewriteRule (.*) clients/client3/projet1/$1 [L]

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    M.E.R.C.I

    Tu viens de me faire économiser un nouveau serveur, si je pouvais je te ferais un bisou !

    Je ne sais pas ce qui à changer mais maintenant ça redirige ! Je vois mon nouveau dossier dans le sous domaine, les liens HTML sont bons, tout est bon, c'est parfait !

    Je ne remercierais jamais assez des gens comme toi.

    PS1: je ne pouvais pas voir cette erreur car 1&1 met par défaut une 403 personnalisée sans la boucle infini, je te l'aurai indiqué

    PS2: si je peux abusé du coup si j'ai une autre règle pour un autre sous-domaine/projet je refais un copier-coller de tout ton dernier code ?

    PS3: il semble qu'il faille un htaccess avec "RewriteEngine on" dans le dossier de destination du projet pour que ça fonctionne et qu'il n'y ai pas d'erreur 500, c'est normal ? Saurais-tu me dire pourquoi ?

  10. #10
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par lifecraft Voir le message
    PS2: si je peux abusé du coup si j'ai une autre règle pour un autre sous-domaine/projet je refais un copier-coller de tout ton dernier code ?
    Oui

    Citation Envoyé par lifecraft Voir le message
    PS3: il semble qu'il faille un htaccess avec "RewriteEngine on" dans le dossier de destination du projet pour que ça fonctionne et qu'il n'y ai pas d'erreur 500, c'est normal ? Saurais-tu me dire pourquoi ?
    C'est plutôt surprenant, ça me paraît bizarre, mais sans accès aux logs d'erreur d'Apache, ça va être dur de comprendre pourquoi.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Roger that !

    merci encore

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

Discussions similaires

  1. Simuler le comportement d'un FULL OUTER JOIN
    Par ced dans le forum Contribuez
    Réponses: 2
    Dernier message: 08/12/2011, 14h25
  2. [AJAX] simuler le comportement des iframes
    Par duplo dans le forum AJAX
    Réponses: 2
    Dernier message: 30/11/2009, 22h01
  3. Simuler le comportement onclick sous IE7 sur une balise <option>
    Par Chengj dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/07/2008, 18h42
  4. simulation du comportement d'un sonar
    Par smartyme dans le forum Signal
    Réponses: 2
    Dernier message: 14/07/2008, 13h15
  5. Simuler le comportement de confirm() avec une popup
    Par Zakapatul dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/05/2007, 11h02

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