Aller au contenu

Problem d'arborescence


Sujets conseillés

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

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 ?

Modifié par Kent
Lien vers le commentaire
Partager sur d’autres sites

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"

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

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

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.

Modifié par Kent
Lien vers le commentaire
Partager sur d’autres sites

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

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/".

Lien vers le commentaire
Partager sur d’autres sites

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 :)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...