Version complète: sur le forum Webmaster Hub : Problem d'arborescence
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
Kent
Bonjour,

je travail actuellement sur un projet.

je souhaiterai avoir des urls du type suivant http://localhost/monsite/macategorie/mapage

j'ai donc la règle suivante dans mon htaccess


CODE
Options +FollowSymlinks
RewriteEngine on

# General
RewriteRule  ^([a-z]+)/([a-z]+)$ /monsite/index.php?dossier=$1&page=$2 [L]


Lorsque je fais ça , ça marche à peu près correctement, sauf que pour mon fichier css je suis obliger de mettre http://localhost/monsite/css/style.css dans le href de la balise link alors qu'avant je faisait juste "css/style.css"

de plus les liens present sur mes pages sont concaténer avec la récriture d'url exemple
si j'écris dans une page A le lien href="categorie2/page2"

et que je suis dans la page http://localhost/monsite/categorie1/page3

le lien écrit me donnera /categorie1/categorie2/page2 au lieu de categorie2/page2 comme écrit dans la source

Merci pour tout aide, j'aimeré réussir à réaliser une arborescence dans mes url pour faciliter la navigation de mes utilisateurs


A noter que lorsque j'utilise autrechose que "/" pour séparer dans le htaccess tout fonctionne correctement peut-être crois-t'il que ce sont des dossier comment lui indiquer l'inverse ou la racine du site ?
Vap
CITATION(Kent @ mardi 4 mars 2008 à 17:14) *
Lorsque je fais ça , ça marche à peu près correctement, sauf que pour mon fichier css je suis obliger de mettre http://localhost/monsite/css/style.css dans le href de la balise link alors qu'avant je faisait juste "css/style.css"

de plus les liens present sur mes pages sont concaténer avec la récriture d'url exemple
si j'écris dans une page A le lien href="categorie2/page2"

et que je suis dans la page http://localhost/monsite/categorie1/page3

le lien écrit me donnera /categorie1/categorie2/page2 au lieu de categorie2/page2 comme écrit dans la source

Merci pour tout aide, j'aimeré réussir à réaliser une arborescence dans mes url pour faciliter la navigation de mes utilisateurs


A noter que lorsque j'utilise autrechose que "/" pour séparer dans le htaccess tout fonctionne correctement peut-être crois-t'il que ce sont des dossier comment lui indiquer l'inverse ou la racine du site ?


Le comportement que tu as est normal. SI tu ne préfixe pas tes chemins par /, alors ce sont des chemins relatifs, à partir de la page courante. La page courante est l'adresse envoyée au serveur, pas l'adresse récrite par tes soins.

Donc pour inclure ton css, met "/css/style.css". Pour tes liens, fais des liens de la forme "/categorie2/page2"
Kent
Bonjour, merci pour vos conseil (notamment à baulet en mp)

Je pense que j'ai du raté quelque chose dans ma regex car ça ne fonctionne toujours pas

tout fonctionne correctement avec un séparateur autre que "/" mais à partir du moment ou j'utilise celui-ci ....

voici mon .htaccess

CODE
RewriteBase /monsite/
RewriteRule  ^([a-zA-Z-\-]+)/([a-zA-Z-\-]+)$ /monsite/index.php?dossier=$1&page=$2 [L]


à noter que le repertoire monsite se trouve dans le dossier www de wamp

dans mon header j'ai mis comme vous me l'avez spécifier "/css/style.css" malheureusement ça ne change rien

ensuite au niveau des liens j'ai mis "/categorie/page" au lieu de "categorie/page"
ça me donne
http://localhost/categorie/page
au lieu de
http://localhost/monsite/categorie/page

j'ai aussi testé sans le RewriteBase

en mettant "/monsite/css/style.css"
j'ai le css ! pourquoi apache ne comprend pas que la racine de mon site n'est pas le dossier 3w mais le dossier www/monsite/ ? Je pense que le soucis vient de là non ?
Merci pour tout aide supplémentaire.
baulet
RewriteBase /www/monsite/ ? peut être unsure.gif
Kent
merci de ta participation, mais ça n'a rien donné smile.gif
Dan
Rajoute tout simplement une balise <base href=....> dans tes fichiers.

A cause de la réécriture, Apache croit (pour autant qu'il puisse croire quelque-chose) qu'il se trouve dans un autre répertoire wink.gif
Vap
CITATION(Vap @ mardi 4 mars 2008 à 20:04) *
Le comportement que tu as est normal. SI tu ne préfixe pas tes chemins par /, alors ce sont des chemins relatifs, à partir de la page courante. La page courante est l'adresse envoyée au serveur, pas l'adresse récrite par tes soins.

Donc pour inclure ton css, met "/css/style.css". Pour tes liens, fais des liens de la forme "/categorie2/page2"


J'avais loupé un truc. Mets:
"/monsite/css/style.css" et "/monsite/categorie/page2/".
Kent
Merci pour vos conseils, ça marche en développement j'espère que lorsque je mettrai le site en production je n'aurai pas de soucis smile.gif
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.