Sous domaines virtuels

Nouveau WRInaute
Bonjour,

J'essaye depuis plusieurs semaines de créer un site avec la possibilité pour les membres de créer une page en sous domaine du type http://nomdumembre.monsite.net

Pour cela, voici mon .htaccess :

Code:
Options +FollowSymlinks
RewriteEngine on

# redirection des sous-domaines
RewriteCond %{REQUEST_URI} !^/var/www/vhosts/monsite.net/httpdocs
RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+).([^.]+)$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)$ /var/www/vhosts/monsite.net/httpdocs/page.php

# fix trailing slash
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]

Les sous domaines fonctionnent sans problème mais il semblerait qu'ils ne puissent pas lire le PHP.

La page "page.php" contient le code suivant:
Code:
<?PHP echo("TESTOK!"); ?>
alors que, lorsque je vais sur http://test.monsite.net, la page est blanche ...

Le plus surprenant est que lorsque je vais sur http://monsite.net, la page affiche bien "TESTOK!" ...

Je ne comprends pas trop pourquoi ... Merci d'avance pour votre aide.

Bonne journée.

Dorian.
 
WRInaute passionné
ta condition sur http_host est étrange. je vois bien à la place :
Code:
Options +FollowSymlinks
RewriteEngine on

# redirection des sous-domaines
RewriteCond %{REQUEST_URI} !^/var/www/vhosts/monsite.net/httpdocs
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ /var/www/vhosts/monsite.net/httpdocs/page.php

# fix trailing slash
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
si tu veux une condition pour avoir http_host du style *.*.* ou *.* il faut mieux l'écrire avec :
Code:
RewriteCond %{HTTP_HOST} ^(([^.]+)\.)?([^.]+)\.([^.]+)$ [NC]
 
Nouveau WRInaute
Merci pour ta réponse. J'ai essayé ce que tu as écris mais j'ai le même résultat qu'avec mon code : les pages des sous domaines comme http://test.monsite.net restent blanches ... sauf le http://monsite.net qui affiche "TESTOK!". Je tiens à rajouter que c'est seulement le PHP qui n'est pas lu car j'ai essayé de mettre "TESTOK!" en HTML et ca fonctionne sans problème pour tous les sous domaines. Merci encore et bonne soirée.
 
WRInaute passionné
Si les admins me le permettent, j'ai posé la question sur le forum d'OVH il y a qqs jours :

-http://forums.ovh.com/showthread.php?t=34890

voilà si ça t'aide. Pour ma part, je n'ai pas eu le temps de tester.

Lolo
 
WRInaute passionné
pour -http://monsite.net les conditions sur http_host ne sont pas pas vérifiée : il ne passe pas donc par la réécriture.
il me semble que c'est le chemin qui n'est pas bon. je mettrais le chemin relatif par rapport au DOCUMENT_ROOT qui doit être /page.php
 
Nouveau WRInaute
Bonsoir,

J'ai fais plusieurs tests avant de poster ce message (modification du virtualhost et du .htaccess) mais toujours le même problème.

Je ne vois pas trop ce que tu veux dire par "le chemin relatif par rapport au DOCUMENT_ROOT qui doit être /page.php" ... il faudrait que je modifie mon .htaccess ?

Au passage, voici le virtualhost en place sur mon serveur (si cela pouvait aussi venir de la) :

Code:
<VirtualHost IPDUSERVEUR:80>
    DocumentRoot /var/www/vhosts/monsite.net/httpdocs
    ServerName monsite.net
    ServerAlias *.monsite.net
</VirtualHost>

Merci encore pour votre aide. Bonne soirée

Dorian.
 
WRInaute passionné
le chemin qui doit être mis dans les rewriterule doit être le chemin par rapport à celui donnée avec DocumentRoot (répertoire racine du domaine).
il faut donc supprimer /var/www/vhosts/monsite.net/httpdocs de tes rewriterule
tu peux aussi supprimer la ligne avec RewriteCond %{REQUEST_URI}
 
Nouveau WRInaute
Re,

Merci pour tes conseils que j'ai suivi à la lettre mais j'ai malheureusement le même résultat ...

Le code suivant donne une "Internal Server Error" :
Code:
Options +FollowSymlinks
RewriteEngine on

# redirection des sous-domaines
RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+).([^.]+)$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)$ /page.php

# fix trailing slash
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]

J'ai donc modifié le "/page.php" en "page.php" qui ramène au même résultat qu'avant: le PHP n'est pas supporté.
 
Nouveau WRInaute
Bonsoir,

J'ajoute une petite précision à mes posts: je suis sur un dédié chez OVH.

Voila, merci et bonne soirée à tous.
 
WRInaute passionné
as-tu essayé de supprimer le "?" dans la condition sur http_host? Je ne comprends pas pourquoi il serait facultatif surtout si c'est un sous-domaine.
 
Nouveau WRInaute
Bonjour,

Je viens d'essayer de supprimer le "?" mais ça ne fonctionne toujours pas.

J'ai aussi essayé d'ajouter une entrée CNAME dans la zone DNS du type *.monsite.net CNAME monsite.net mais les sous domaines sont maintenant en "Serveur introuvable" donc j'ai vite supprimé cette entrée.

Je ne sais plus trop ou me diriger maintenant.

Merci et bonne fin de journée.

Dorian.
 
Discussions similaires
Haut