8721 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Bon voila, je flanche un peu sur la mise en place d'une racine virtuelle pour que mes liens puissent être en absolu "/lien/page.html" quelque soit l'hébergement...

Etant actuellement en local, la racine est logiquement localhost.

Je fais un répertoire par projet mais le soucis est que lorsque je fais un lien (je sais que le problème ne se posera plus sur l'hébergement mutualisé vu que la racine sera la bonne...) en absolu, il me prend l'URL à partir de localhost et par conséquent, il me saute mon répertoire de mon projet.

Explication :
<a href="/categorie/dressing/">Dressing</a> 


le navigateur renvoi sur :
http://localhost/categorie/dressing/


Il me manque donc :
http://localhost/[#red][b]nom-projet/[/b][/#]categorie/dressing/


Je suis donc parti sur un .htaccess à la racine de mon répertoire projet, voici mon fichier :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /nom-projet

# Redirections simples
RewriteRule ^categorie/([a-zA-Z\-]+)/$  resultat.php?categorie=$1 [L]


Pour être franc, je ne sais pas pourquoi mon cerveau fait les montagnes russes quand il s'agit de HTACCESS alors que le problème est sans doute super simple...

Savez-vous d'où vient le soucis ?

Merci d'avance !
Bonjour, test avec :

RewriteBase /


Je suis un novice mais je pense que cela pourrait fonctionner. Smiley smile

Edit : Ou même sans
#RewriteBase /

Modifié par cocochepeau (21 Apr 2012 - 16:21)
cocochepeau a écrit :
Bonjour, test avec :

RewriteBase /


Je suis un novice mais je pense que cela pourrait fonctionner. Smiley smile

Edit : Ou même sans
#RewriteBase /


J'avais oublié de le mettre dans mon message mais j'avais déjà testé avec "Rewritebase /" et sans succès.
Modérateur
Et pourquoi ne fais-tu pas un virtualhost par projet?

ainsi pour accéder à chacun de mes sites j'ai http://monsite.local http://unautre.local … Et ainsi tu n'as même pas besoin qu'ils soient tous dans le même dossier…
Salut
Je supporte la réponse de "kustolovic", des virtualhost configurées sur la conf de ton apache, et une redirection de tes propres nom de domaine vers le 127.0.0.1 à travers ton fichier \drivers\etc\hosts (Sur windows. Un exemple est déjà dedans avec localhost) sera la meilleur pratique à envisager.
En plus si tu travailles avec PHP par exemple, il va falloir apprendre l'habitude de définir une constante définissant l'URL du dossier racine de ton application, et de la mettre dans le fichier qui inclus ta config du site, auquel tu feras appel dans toutes tes pages. Cela permet de gérer un site qui inclus des mini-sites, en faisant recours à l'approche de distinction de chaque application par dossier, au lieu de sous-domaines. Aussi ne pas oublier d'éviter les chemins relatifs, ce n'est pas vraiment le meilleur choix qu'on puisse faire dans une application car il peut très bien handicaper l'évolution de l'application et sa richesse, alors vaut mieux faire recours à de l'absolu, par conséquent définir une constante comme déjà décrit.
Bonne courage
Modifié par unami (22 Apr 2012 - 03:08)
unami a écrit :
Salut
Je supporte la réponse de &quot;kustolovic&quot;, des virtualhost configurées sur la conf de ton apache, et une redirection de tes propres nom de domaine vers le 127.0.0.1 à travers ton fichier \drivers\etc\hosts (Sur windows. Un exemple est déjà dedans avec localhost) sera la meilleur pratique à envisager.
En plus si tu travailles avec PHP par exemple, il va falloir apprendre l'habitude de définir une constante définissant l'URL du dossier racine de ton application, et de la mettre dans le fichier qui inclus ta config du site, auquel tu feras appel dans toutes tes pages. Cela permet de gérer un site qui inclus des mini-sites, en faisant recours à l'approche de distinction de chaque application par dossier, au lieu de sous-domaines. Aussi ne pas oublier d'éviter les chemins relatifs, ce n'est pas vraiment le meilleur choix qu'on puisse faire dans une application car il peut très bien handicaper l'évolution de l'application et sa richesse, alors vaut mieux faire recours à de l'absolu, par conséquent définir une constante comme déjà décrit.
Bonne courage


Tout d'abord, merci de vos réponses.

La solution de la constante est justement celle que j'utilise depuis environ 2 ans. Mais je pensais justement que inclure quelque chose sous la forme : <img src="<?php echo $domain; ?>images/truc.png" /> n'était pas la solution la plus performante...

Mon exemple de lien lors du premier post est un lien absolu. Je ne fais que très rarement des chemins en relatif (empêchant comme tu le dis de faire évoluer mon application...) donc de ce côté là je suis entièrement d'accord ! Et l'"avantage" est que ces liens sont adaptables à tous les domaines vu qu'ils font référence à la racine. D'où mon envie de faire une nouvelle racine avec un .htaccess.

Je ne connaissais pas l'histoire des virtualhost, je vais me pencher dessus. Ca à l'air de bien correspondre à ce que je recherche !

Je vous tiens au courant, si jamais vous avez d'autres remarques concernant le HTACCESS, je suis toujours preneur, les infos sont toujours bonnes à prendre Smiley cligne

Encore merci.

Apo.
Modifié par Apoooo (22 Apr 2012 - 18:51)
kustolovic a écrit :
Et pourquoi ne fais-tu pas un virtualhost par projet?

ainsi pour accéder à chacun de mes sites j'ai http://monsite.local http://unautre.local … Et ainsi tu n'as même pas besoin qu'ils soient tous dans le même dossier…


Ca marche impeccablement bien ! Merci pour cette solution. Ca va me faire gagner du temps !

A bientôt.