Aller au contenu

Sujets conseillés

Posté (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é par Mona
Posté (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é par froidure_nicolas
Posté

Merci, Jey, pour l'info mais ça ne fonctionne pas...

Mona.

Posté

Oops :P

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=&quot;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=&quot;http://www.example.com/">

=> <base href=&quot;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.

Posté (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é par Mona
Posté

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.

  • 4 semaines plus tard...
Posté

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.

Posté (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=&quot;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é par Mona

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...