Version complète: sur le forum Webmaster Hub : Sous-domaines et includes
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Mona
Bonsoir,

J'ai appris récemment que l'utilisation de sous-domaines est bonne pour:

1. Les internautes qui peuvent accéder ainsi directement à une partie du site
2. Le référencement (google utilisant lui-même ces sous-domaines, il n'y voit à prioiri pas de spam...)

Mais si on fait pointer le sous-domaine directement vers l'URL de la page, cela pose des problème car les includes php ne sont pas trouvés...

Soit l'arborescence suivante:
MAIN = site principal www.tototititata.fr
|
|-------ACTU = sous domaine actu.tototititata.fr
|
|-------FORUM = sous domaine forum.tototititata.fr
|
|-------images = contient les fichiers images
|
|-------inc = contient des includes php
etc..

Techniquement, si les sous-domaines pointent directement sur les sous répertoires "actu" et "forum", le chemins d'accès au répertoire "inc" ne sera pas valide... ce qui veut dire que la page forum: http://www.tototititata.fr/FORUM/forum.php fonctionnera, mais que http://forum.tototititata.fr/forum.php ne fonctionnera pas si elle utilise des fichiers includes du répertoire "inc".

Quelqu'un a-t-il déjà rencontré ce type de problème ?

Merci d'avance.
Mona.
Harry_20
As-tu essayé en précisant le chemin absolu dans ton include au lieu des chemins relatifs ?

A mon avis la variable $_SERVER["DOCUMENT_ROOT"] devrait pouvoir faire l'affaire wink.gif

Perso, je n'ai pas beaucoup utilisé les sous-domaines, donc je ne peux pas en dire plus.
Mona
Oui, c'est justement ce que j'utilise.... sad.gif
Remi
Je ne me prononcerais pas sur l'utilité de faire des sous-domaines rolleyes.gif mais en ce qui concernes les includes, il faut les faire en adresse serveur (il faut oublier le http pour les include... il faut raisonner en tant que serveur).

Donc le chemin doit être de la forme :
Adresse absolue depuis la racine du serveur : par ex. : /home/mondomaine/www/..../inc
ou en adresse relative, par ex. : ../../autredom/inc/

C'est exactement la même situation que d'avoir un include commun à plusieurs domaines sur un même serveur.
Mona
Oui... C'est ce que je fais:

Par exemple:

include($_SERVER['DOCUMENT_ROOT']."/assistance-informatique/assistance-informatique.php");

Si je fais afficher la valeur, le chemin est correct. Pourtant, la fonction "include" ne fonctionne pas ... sad.gif
Mona.
Mona
Bonjour,

Je reviens sur mon problème... En fait, j'ai identifié la cause...

La variable $_SERVER['DOCUMENT_ROOT'] ne renvoie pas la même chose selon qu'on se trouve sur le domaine (dossier principal) ou un sous-domaine (sous-dossier).

Exemple:
sur l'URL du domaine principal, cela renvoie quelque chose comme /srv/htdocs/maindomain
sur l'URL du sous-domaine, cela renvoie quelque chose comme /srv/htdocs/maindomain/actu (pour le sous-domaine actu qui pointerait sur le sous-dossier actu)

La question est donc maintenant: Quelqu'un a-t-il déjà contourné ce type de problème ??

Merci.
Mona.
destroyedlolo
Si t'as access au php.ini, il suffit simplement de rajouter le repertoire de tes include inc dans la liste des repertoire chercher pour les include.

Ensuite
CODE
require('mon_fichier.inc');


C'est ce que je fais sur tous mes sites.

Si tu n'y a pas acces, il te suffira de rajouter un ch'tit code qui inclus ../ si tu es dans un sous domaine.

A+

Lolo
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.