Version complète: sur le forum Webmaster Hub : définir la racine du site
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net
ElMoustiko
Je cherche à définir la racine de mon site dans ma page, (ou avec un autre moyen, style htaccess je suppose).

Par exemple, là j'ai mon site qui est sur www/tutoriels/ et donc les liens du type : <a href="/dossier/">...</a> renvoient à www/dossier/ moi je voudrais redéfinir la racine du site pour le dossier tutoriels, de façon à ce que /dossier/ renvoi à www/tutoriels/dossier/

Et si je fais un lien <a href="/">...</a> ca renvoi à www/tutoriels/ et non à www/

C'est possible via meta ? ou peut etre via le fichier htaccess ?

J'espere que j'ai été clair dans mon problème.

@++
Xavier
Tu peux utiliser <base href="http://design.elmoustikoblog.net/tutoriels/" /> dans le <head> de chaque page. Attention c'est valable pour tout (appel des scripts et css externes, etc.)
ElMoustiko
Si je fais ça, ça redéfinit la racine du site pour cette page en tant que .../tutoriels/ ??

Ca fonctionne sur tous les navigateurs ?

En l'occurence ça serait plutot pour http://www.elmoustikoblog.net/tutoriels/ wink.gif mais ca ne change rien à la question, par contre, est ce que je peux mettre :

<base href="/tutoriels/" /> à la place ?

Donc si j'ai bien compris (histoire de mettre au clair dans mon espit embrumé), avec <base href="/tutoriels/" /> (ou avec l'adresse complète si c'est pas possible comme ca)

je peux faire mes liens comme ceci : <a href="/php/">..</a> et ca pointera vers /tutoriels/php/

Après un test rapide en local avec
<base href="http://localhost/tutoriels/" /> et <base href="/tutoriels/" />
et un lien <a href="/">..</a> je pointe vers ht*p://localhost/ au lieu du ht*p://localhost/tutoriels/ souhaité, ca ne semble donc pas fonctionner...
ElMoustiko
Raahhh j'en ai marre de DreamWeaver, on fait une recherche qui n'a rien à voir "définir la racine d'un site", "racine d'un site", "racine site htaccess" et à chaque fois on tombe sur des liens vers cette bouze... non seuleument il fait une soupe immonde pour la plupart mais en plus vu que tout le monde l'utilise il n'y en a que pour lui... rahh impossible d'avoir une quelconque information...

Si vous avez des idées pour mon problème...
Titag
Salut,

Tu peux toujours utiliser le php :
Définir une constante (la racine)
CODE
define ("RACINE", "http://localhost/tutoriels/");

Attention à respecter les majuscules pour le nom de la constante.

Lorsque que tu fait un lien :
CODE
<a href="<? echo RACINE;?>dossier/page.php">Lien</a>



PS : Ca n'a rien a voir mais pourquoi ecrire ht*p://localhost ? huh.gif
ElMoustiko
Pour ta solution Titag, autant que j'écrive <a href="/tutoriels/php/"> plutot que <a href="<? echo RACINE;?>php/">, mais merci quand même.

Pour le ht*p j'ai mis une étoile à la place du t pour inhiber le lien, sinon il y aurait eu un lien vers localhost.
Dan
ElMoustiko,

Tu ne dis pas si tu es sur serveur dédié ?
Dans l'affirmative, il suffit de changer le paramètre DocumentRoot correspondant au domaine dans le fichier de configuration Apache.

Dan
ElMoustiko
Je suis hébergé chez celeonet sur l'offre pimaire. Ca ne doit donc pas etre un serveur dédié smile.gif Mais je n'ai pas pensé à le préciser ne pensant pas que ca servirait.

Et via htaccess, il n'y a pas une solution ? (le mieux serait une solution style meta donnée, mais je suis pas certain que ca existe).
Je pensais aux regles de réécriture, en redirigeant les /php, /truc, /machin, ... vers /tutoriels/php, /tutoriels/truc, /tutoriels/machin, ... mais je n'arrive pas à utiliser le fichier htaccess ne fonctionne pas en local, il me fait une erreur 500, internal server error ou un truc du genre, et je ne sais pas comment utiliser mon htaccess en local poutr mes tests...

Je me disais qu'il pouvait y avoir un balise style <base> que m'indiquait Xavier...

Voilà...
Titag
CITATION(ElMoustiko @ 14 Oct 2004, 09:57)
Pour ta solution Titag, autant que j'écrive <a href="/tutoriels/php/"> plutot que <a href="<? echo RACINE;?>php/">, mais merci quand même.


En effet... sauf que si tu veux changer la racine, tu fait une seule modification au lieu de modifier tous tes liens wink.gif
ElMoustiko
Oui mais a priori je ne changerais pas la racine et je suis sûr que ca existe ce genre de manip, enfin je serais étonné que non en tout cas...
Donc avec la manip que je recherche, un seul truc à changer au changement de racine et rien à écrire dans les liens wink.gif
ElMoustiko
Bon en fait, j'ai réussi à faire fonctionner mon fichier htaccess en local, je n'avais pas redémarré easyphp après la suppression des # pour les lignes concernant le mod rewrite.

Mais ma règle de réécriture semble ne pas fonctionner :

CODE
RewriteEngine on

RewriteRule /$1 /tutoriels/$1


Ma règle est peut être (sûrement) mauvaise, mais a t elle des chances de fonctionner ? (avec un syntaxe correcte) ?

J'ai mis mon fichier htaccess dans mon dossier tutoriels.

(rappel de l'arbo :
www/tutoriels/php/dossier
www/tutoriels/js/dossier
www/tutoriels/css/dossier )

{edit}
Je viens de voir sur ce topic : http://www.webmaster-hub.com/index.php?showtopic=5835
qu'on peut définir le fichier à afficher par défaut, si rien n'est spécifié, on pourrait pas faire pareil avec mon histoire de dossier ?

{edit2}
J'ai peut etre trouvé un truc :
http://www.eisti.fr/res/manual/mod/core.dim#documentroot
Mais en utilisant ceci :
CODE
DocumentRoot /tutoriels

D'apres le lien, localhost/php devrait renvoyer à localhost/tutoriels/php mais j'ai une erreur 500
CITATION
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin_AT_localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Si quelqu'un connait cette manip au niveau du fichier htaccess, je suis preneur.
ElMoustiko
Pour l'instant j'utilise la version de Titag, ca fonctionne impec (merci wink.gif) Mais ca m'enerve de devoir écrire <? echo RACINE ; ?> a chaque lien wink.gif

Euh question débile, je peux mettre ce que je veux à la place de RACINE ? je suis sûr à 99.9% que oui puisque c'est pas de l'anglais wink.gif

Donc si vous avez autre chose à me suggérer, n'hesitez pas wink.gif

@++
Xavier
CITATION(ElMoustiko @ 13 Oct 2004, 21:34)
Si je fais ça, ça redéfinit la racine du site pour cette page en tant que .../tutoriels/ ??

Ca fonctionne sur tous les navigateurs ?

En tous cas tous ceux qui supportent le HTML 3.2, et même le 2.0, autant dire qu'il n'y a pas trop de soucis de ce côté là tongue.gif
D'ailleurs c'est couramment utilisé !

CITATION(ElMoustiko @ 13 Oct 2004, 21:34)
En l'occurence ça serait plutot pour http://www.elmoustikoblog.net/tutoriels/ wink.gif mais ca ne change rien à la question, par contre, est ce que je peux mettre :

<base href="/tutoriels/" /> à la place ?
Alors ça je sais pas...

CITATION(ElMoustiko @ 13 Oct 2004, 21:34)
Donc si j'ai bien compris (histoire de mettre au clair dans mon espit embrumé), avec <base href="/tutoriels/" /> (ou avec l'adresse complète si c'est pas possible comme ca)

je peux faire mes liens comme ceci : <a href="/php/">..</a> et ca pointera vers /tutoriels/php/
Je dirais plutôt <a href="php/"> sans le / au début.
Attention parce que tes liens internes du genre <a href="#contenu"> iront vers /tutoriels/#contenu et pas /tutoriels/page.html#contenu si tu est sur page.html.

CITATION(ElMoustiko @ 13 Oct 2004, 21:34)
Après un test rapide en local avec
<base href="http://localhost/tutoriels/" /> et <base href="/tutoriels/" />
et un lien <a href="/">..</a> je pointe vers ht*p://localhost/ au lieu du ht*p://localhost/tutoriels/ souhaité, ca ne semble donc pas fonctionner...
*
À mon avis le "/" au début surpasse la balise base et du coup ça va à la racine.
Avec un base href tu n'as plus besoin de mettre ce "/" devant tes adresses, tu les entres comme si tu étais sur la page /tutoriels/index.htm wink.gif
Titag
CITATION(ElMoustiko @ 14 Oct 2004, 16:45)
Euh question débile

Ca n'existe pas smile.gif

CITATION
je peux mettre ce que je veux à la place de RACINE ?

Absolument. La fonction Define sert à attribuer une valeur à une constante. Dans ton cas, tu decide que la constante RACINE aura la valeur http://localhost/tutoriels/

Cf. fr.php.net
ElMoustiko
Oui mais moi, je n'ai jamais de fichier index.html ou ce genre de truc, toutes mes url seront du type domaine.net/tutoriels/dossier/dossier/

Donc pour faire un lien vers l'accueil (domaine.net/tutoriels/) il faudrait que je fasse href="/" mais avec ta technique aparement il ne faut pas mettre de / au début, donc href="" c'est possible ?

Je retesterais plus tard.

Pour les #ancre, si je n'ai jamais d'url avec nom de fichier à la fin, ca pointera vers domaine.net/tutoriels/dossier/#ancre et ca devrait fonctionner en principe je pense.

Donc, je test ça dans pas longtemps, je te dirais le résultat.

@++ et merci
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.