Rewrite - Répertoires virtuels - Chemin relatif
3 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- totoIlEstBo
- Nouveau WRInaute

- Messages: 2
- Inscription: 19 Oct 2011
Rewrite - Répertoires virtuels - Chemin relatif
Bonjour bonjour la communauté.
Je viens vers vous car j'ai un petit souci dans la conception d'un site web.
Je me suis mis il y a peu à l'url rewriting.
Pour situer le problème voici un test très simple. (les codes des pages de test suivent)
J'ai une application php dont les adresses sont "rewritées". l'utilisateur tape par ex : monsite.com/news pour accéder à index.php?url=news. S'il tape monsite.com/news/ cela fonctionne aussi. (ou encore monsite.com/news/23)
Cependant, c'est là qu'un problème apparait.
Dans un fichier index.php je place une balise css dont le chemin est en relatif de cette manière : <link rel="stylesheet" media="all" href="style/base.css" />.
Lorsque dans l'adresse une partie est considérée comme un répertoire virtuel, le chemin relatif prend en compte ce répertoire non existant.
Donc quand on tape monsite.com/news/ au lieu d'aller chercher le css dans "monsite.com/style/base.css" il va le chercher dans monsite.com/news/style/base.css "news" étant un répertoire inexistant.
De plus, je travaille dans un répertoire du serveur et non directement à la base.
Alors si je fais : <link rel="stylesheet" media="all" href="/style/base.css" /> il le recherche à partir de la base du serveur, ne le trouvant pas.
Pour récapituler :
monsite.com/test/ => répertoire de base de l'application contenant les fichiers et dossiers :
monsite.com/test/index.php
monsite.com/test/.htaccess
monsite.com/test/style/base.css
Bien sûr je résoudrais très simplement le problème en utilisant un chemin absolu pour le css, ou en rajoutant le répertoire dans lequel on travaille dans le chemin relatif du css mais ce n'est pas une solution très maléable selon moi.
Pour finir, dans mon htaccess, je suis aussi obligé de définir le répertoire courant.
Tout çà impliquerai que lorsque je le transfère je doivent changer les lignes de codes correspondantes (impossible si trop d'include. Et comme je travaille pour des clients qui veulent juste avoir à envoyer les fichiers sur leur serveur pr que leur site s'affiche, tout çà n'est pas vraiment une bonne soluce.
Bon place aux codes (très simplifiés mais ptet que j'ai fait des erreurs dans le htaccess :
index.php
style/base.css (juste changement de couleur histoire de voir direct si c'est pris en compte)
.htaccess
Bon bein j'espère que quelqu'un pourra m'éclairer. Pour info je suis chez 1and1, un pack classique quoi... qu'un client potentiel aurait tot fait d'acheter.
Merci d'avance à vous et à très vite j'espère
Je viens vers vous car j'ai un petit souci dans la conception d'un site web.
Je me suis mis il y a peu à l'url rewriting.
Pour situer le problème voici un test très simple. (les codes des pages de test suivent)
J'ai une application php dont les adresses sont "rewritées". l'utilisateur tape par ex : monsite.com/news pour accéder à index.php?url=news. S'il tape monsite.com/news/ cela fonctionne aussi. (ou encore monsite.com/news/23)
Cependant, c'est là qu'un problème apparait.
Dans un fichier index.php je place une balise css dont le chemin est en relatif de cette manière : <link rel="stylesheet" media="all" href="style/base.css" />.
Lorsque dans l'adresse une partie est considérée comme un répertoire virtuel, le chemin relatif prend en compte ce répertoire non existant.
Donc quand on tape monsite.com/news/ au lieu d'aller chercher le css dans "monsite.com/style/base.css" il va le chercher dans monsite.com/news/style/base.css "news" étant un répertoire inexistant.
De plus, je travaille dans un répertoire du serveur et non directement à la base.
Alors si je fais : <link rel="stylesheet" media="all" href="/style/base.css" /> il le recherche à partir de la base du serveur, ne le trouvant pas.
Pour récapituler :
monsite.com/test/ => répertoire de base de l'application contenant les fichiers et dossiers :
monsite.com/test/index.php
monsite.com/test/.htaccess
monsite.com/test/style/base.css
Bien sûr je résoudrais très simplement le problème en utilisant un chemin absolu pour le css, ou en rajoutant le répertoire dans lequel on travaille dans le chemin relatif du css mais ce n'est pas une solution très maléable selon moi.
Pour finir, dans mon htaccess, je suis aussi obligé de définir le répertoire courant.
Tout çà impliquerai que lorsque je le transfère je doivent changer les lignes de codes correspondantes (impossible si trop d'include. Et comme je travaille pour des clients qui veulent juste avoir à envoyer les fichiers sur leur serveur pr que leur site s'affiche, tout çà n'est pas vraiment une bonne soluce.
Bon place aux codes (très simplifiés mais ptet que j'ai fait des erreurs dans le htaccess :
index.php
- Code: Tout sélectionner
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" media="all" href="/style/base.css" />
</head>
<body>
</body>
</html>
style/base.css (juste changement de couleur histoire de voir direct si c'est pris en compte)
- Code: Tout sélectionner
html {
background: black;}
.htaccess
- Code: Tout sélectionner
Options +FollowSymLinks
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ test/index.php?url=$1 [L]
Bon bein j'espère que quelqu'un pourra m'éclairer. Pour info je suis chez 1and1, un pack classique quoi... qu'un client potentiel aurait tot fait d'acheter.
Merci d'avance à vous et à très vite j'espère
- totoIlEstBo
- Nouveau WRInaute

- Messages: 2
- Inscription: 19 Oct 2011
Re: Rewrite - Répertoires virtuels - Chemin relatif
Bon pour l'instant gràce à un autre forum je suis arrivé à quelque chose de plus maléable :
Avec la balise <base href=""> les chemins relatifs pointent à partir de cette base définie.
<base href="monsite.com/test/" /> vu que je travaille dans un dossier "test".
(en réalité je crée une constante dans un fichier config, constante que j'affiche pour le href, dans le cadre d'une application un fichier d'installation pourrait alors créer cette constante en fonction de ce que l'admin dit)
Cependant ce que je voudrais en fait c'est faire une détection automatique du chemin réel.
On a pensé aux variables style $_SERVEUR['HTTP_HOST'], ou DOCUMENT _ROOT, mais aucune ne convient vraiment.
DOCUMENT_ROOT ne donne pas l'adresse publique de type http://...
HTTP_HOST renvoie à la racine du serveur et non du site, donc travaillant dans un dossier çà ne marche pas (monsite.com au lieu de monsite.com/test/ en gros)
Donc si quelqu'un a une idée je suis preneur
Avec la balise <base href=""> les chemins relatifs pointent à partir de cette base définie.
<base href="monsite.com/test/" /> vu que je travaille dans un dossier "test".
(en réalité je crée une constante dans un fichier config, constante que j'affiche pour le href, dans le cadre d'une application un fichier d'installation pourrait alors créer cette constante en fonction de ce que l'admin dit)
Cependant ce que je voudrais en fait c'est faire une détection automatique du chemin réel.
On a pensé aux variables style $_SERVEUR['HTTP_HOST'], ou DOCUMENT _ROOT, mais aucune ne convient vraiment.
DOCUMENT_ROOT ne donne pas l'adresse publique de type http://...
HTTP_HOST renvoie à la racine du serveur et non du site, donc travaillant dans un dossier çà ne marche pas (monsite.com au lieu de monsite.com/test/ en gros)
Donc si quelqu'un a une idée je suis preneur
-

Leonick - WRInaute accro

- Messages: 19598
- Inscription: 8 Aoû 2004
Re: Rewrite - Répertoires virtuels - Chemin relatif
pourquoi pas malléable ? c'est pourtant ce qu'il faut faire : les références relatives sont à éviter autant que possible et, surtout dans ce cas où les css sont toujours au même endroit sur le sitetotoIlEstBo a écrit:Bien sûr je résoudrais très simplement le problème en utilisant un chemin absolu pour le css, ou en rajoutant le répertoire dans lequel on travaille dans le chemin relatif du css mais ce n'est pas une solution très malléable selon moi.
3 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- chemin relatif et absolu
- plan de site en chemin relatif ou absolu?
- Répertoires virtuels
- Distinguer répertoires virtuels et réels
- URL rewriting et répertoires virtuels
- Multilingue et sous repertoires virtuels
- repertoires virtuels au fonctionnement aleatoire
- [url rewriting] Répertoires Virtuels
- Redirection 404 et répertoires virtuels
- Transformer une arborescence de répertoires virtuels
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
