Mona Posté 20 Octobre 2006 Posté 20 Octobre 2006 (modifié) Bonjour à tous, 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 techniquement, faut-il faire pointer le sous-domaine directement vers l'URL de la page, donc avoir la page dans un sous-répertoire et la page index qui va bien ? Ou peut-on faire une rediretion via .htaccess ? Et dans ce dernier cas, quel type de redirection ? Car la première solution a pas mal d'impacts au niveau technique: Soit l'arborescence suivante: MAIN = site principal www.toto.fr | |-------ACTU = sous domaine actu.toto.fr | |-------FORUM = sous domaine forum.toto.fr | |-------images = contient les fichiers images | |-------inc = contient des includes php etc.. Techniquement, si les sous-domaines pointent directement sur sur les sous répertoires "actu" et "forum", cela pose pas mal de problèmes pour le codage, notamment et entre autres, parce que les chemins d'accès aux répertoires "images" ou "inc" ne seront pas valides... ce qui veut dire que la page forum: http://www.toto.fr/FORUM/forum.php fonctionnera, mais que http://forum.toto.fr/forum.php ne fonctionnera pas si elle utilise des fichiers des répertoires "images" et "inc". Donc, redirection ? Laquelle ? Quel impact de la redirection sur le référencement du sous-domaine ? Merci d'avance. Mona. EDIT: Oups, toto.fr existe vraiment.... c'était pour l'exemple bien sûr ! Modifié 20 Octobre 2006 par Mona
froidure_nicolas Posté 20 Octobre 2006 Posté 20 Octobre 2006 (modifié) Il me semble qu'il existe une balise méta pour spécifier la racine pour les chemins relatifs du document. Mais c'est vieux, et je ne sais pas si les nouveaux navigateurs l'implémentent. En tout cas, si tu retrouve cette info, elle m'intéresse. Modifié 20 Octobre 2006 par froidure_nicolas
Jey Posté 20 Octobre 2006 Posté 20 Octobre 2006 <base href="http://www.toto.com"> à placer dans le head. Pratique aussi quand on utilise de l'url rewriting avec des sous répertoires.
Mona Posté 20 Octobre 2006 Auteur Posté 20 Octobre 2006 Merci, Jey, pour l'info mais ça ne fonctionne pas... Mona.
Jey Posté 20 Octobre 2006 Posté 20 Octobre 2006 Oops Personnellement j'utilise cette balise avec des sous-répertoires, pas des sous-domaines : Sur la page http://www.example.com/sous-repertoire/page.htm : * balise <base href="http://www.example.com"> ds le head. * Image de type <img src="images/image.jpg" /> avec le répertoire images qui se trouve à la racine du serveur www. Mais c'est étonnant que ça ne fonctionne pas avec des sous-domaines... Tu as essayé avec et sans "/" à la fin de l'url ? C'est peut-être un pb tout bête comme ça... => <base href="http://www.example.com/"> => <base href="http://www.example.com"> Pour les images et include dans le code HTML ça devrait fonctionner. Pour les includes php c'est un autre problème puisque la gestion du ss-domaine se fait plutôt dans le code php... Si ça ne fonctionne pas n'hésite pas à m'envoyer ton url par MP.
Mona Posté 21 Octobre 2006 Auteur Posté 21 Octobre 2006 (modifié) Salut Jey, J'ai essayé avec ou sans "/"... Idem. Le problème, c'est que les includes php ne sont pas trouvés... C'est donc plutôt un problème de codage... Je vais tenter un post dans la rubrique "Langage". Merci. Mona. Modifié 21 Octobre 2006 par Mona
Mona Posté 25 Octobre 2006 Auteur Posté 25 Octobre 2006 Bonjour, Le problème initial étant résolu (problème d'include PHP ) je tenais à remercier Jey pour sa réponse qui m'a permis de resoudre le second problème en quelques secondes une fois le premier résolu. . En effet, j'ai dû utiliser la balise <BASE href=...> pour les références cette fois purement HTML aux images, feuilles de style, etc. Merci encore. Mona.
moket201 Posté 20 Novembre 2006 Posté 20 Novembre 2006 Bonjour Mona ! Je rencontre le même problème que toi (le problème d'include PHP). Peux-tu me dire comment tu l'as résolu ? Merci !
Mona Posté 20 Novembre 2006 Auteur Posté 20 Novembre 2006 Bonjour, Je manque de temps aujourd'hui, je reviens vers toi demain... Sinon pour info, c'est un problème de path avec le DOCUMENT_ROOT. Je te mettrai un code en exemple. Mona.
Mona Posté 21 Novembre 2006 Auteur Posté 21 Novembre 2006 (modifié) Bonjour Moket, Voici donc le problème qui me concernait: Structure: / | | | SOUS-REP Les sources php utilisent des includes. Par exemple: <?php include($_SERVER['DOCUMENT_ROOT']."/inc/moninclude.php"); ?> (et "moninclude.php" contient lui-même des includes...) De plus, la racine de mon site n'est pas la racine de mon héberement mais se trouve dans un sous-répertoire, appelons le "BASE". Pour accéder à mes pages php de "SOUS-REP" depuis mon domaine principal (www.maindomain.com/SOUS-REP/test.php) et depuis mon sous domaine qui lui pointe directement sur SOUS-REP (www.subdomain.com/test.php), je dois modifier mon inclusion: <?php include(substr($_SERVER['DOCUMENT_ROOT'], 0, strpos($_SERVER['DOCUMENT_ROOT'], '/BASE') + 5)."/inc/moninclude.php"); ?> Pourquoi ? Car mon domain principal pointant vers "BASE", $_SERVER['DOCUMENT_ROOT'] me renvoie le chemin suivant: /BASE Par contre mon sous-domaine pointe vers "SOUS-REP", donc $_SERVER['DOCUMENT_ROOT'] me renvoie le chemin suivant: /BASE/SOUS-REP Or côté serveur rien ne change ! Mes includes sont dans /BASE/inc, et pas dans /BASE/SOUS-REP/inc ... L'extraction de /BASE avec strpos me permet d'obtenir le chemin correct dans tous les cas... Voilà pour la résolution des chemins côté serveur. Mais ce n'est pas tout. Il faut ensuite résoudre ce même problème côté client (navigateur). Et comme le suggérait Jey, la balise <base href="http://www.maindomain.com"> permet de résoudre le problème. On regarde si l'internaute est arrivé par le domaine ou le sous-domaine. S'il est arrivé par le sous domaine, on utilise la balise base pour indiquer au navigateur de chercher les liens (images etc...) depuis le domaine principal: if (substr($_SERVER['DOCUMENT_ROOT'], 0, strpos($_SERVER['DOCUMENT_ROOT'], '/BASE') + 5) != $_SERVER['DOCUMENT_ROOT']){ echo '<base href="http://www.maindomain.com">'; } et le tour est joué... (Note que la balise base peut-être employée autant de fois que l'on veut dans le code source pour être redéfinie à volonté) Mona. Modifié 21 Novembre 2006 par Mona
moket201 Posté 22 Novembre 2006 Posté 22 Novembre 2006 Merci beaucoup Mona, ton aide m'a été bien utile ! Bonne journée à toi.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant