Nouveau WRInaute
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:
<!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:
html {
background: black;}
.htaccess
Code:
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