Problème URL rewriting

Résolu/Fermé
windingworm Messages postés 16 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 février 2009 - 8 août 2008 à 11:27
 guiguideParis - 17 janv. 2011 à 10:16
Bonjour à tous,

Je rencontre un problème avec l'url rewriting que je suis en train d'installer sur mon site (je suis en local, wamp5).

Toutes les pages s'incluent à partir de l'index, en reprenant des variables GET.
Toutes mes pages sont donc de la forme : index.php?rubrique=x&page=y, et accessoirement un id=z dans le cas d'une page générique qui fera appel à la BDD.
Voici mon index :

<?php
include('include/config_inc.php');
include('include/constant_inc.php');
include('include/vars_inc.php');
include('include/function_inc.php');
include('include/db_inc.php');
include('include/page_inc.php');
session_start();
connection_base();
include('include/php_inc.php');
include('include/header_inc.php');
include('include/js_inc.php');
include('frame/header.php');
include($contenu);
include('frame/footer.php');
mysql_close();
?>

- page_inc récupère les 2 variables "rubrique" et "page", et va chercher le fichier correspondant dans l'arborescence à partir de la racine (dans un dossier "pages". Il crée ensuite une variable $contenu qui est inclue plus bas dans l'index (entre le header et le footer)
- php_inc va chercher le code php rattaché exclusivement à la page affichée, classé exactement comme dans le dossier "pages" (par rubrique et par page : exemple validation d'un formulaire, requêtes à la base, etc.)
- idem pour js_inc
- le css est lui inclus génériquement dans toutes les pages dans les balises head (contenues dans js_inc, qui intègre le javascript en fonction de la page visitée, lui aussi dans les balises head)

Tous les liens sont en relatifs (ex : css/style.css) puisque tout part de la racine du site (rappel nous sommes toujours sur l'index), d'où peut-être le problème.

L'URL rewriting en lui même "fonctionne", c'est à dire que j'arrive à me rendre sur la page voulue. J'ai inséré un fichier .htaccess à la racine du site, donc juste à côté de l'index (rappel, nous sommes toujours dessus. Voici la forme de mes règles de redirection :

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^x/y/$ index.php?rubrique=x&page=y [L]

... Mais il y a un mais, plusieurs problèmes se posent lors de l'affichage :
- Mon css n'est plus inclus
- Mes liens au survol on maintenant la forme : localhost/monsite/x/y/index.php?rubrique=a&page=b
a et b variant d'un lien à l'autre ; mais localhost/monsite/x/y/ est lui constant sur tous les liens lorsque je mon trouve sur la page x/y/ !!! Ils sont comme doublés.

J'ai conscience de plusieurs choses : mes répértoires sont virtuels, x/y/ n'existant pas réellement dans mon arborescence. J'ai donc cherché sur le net et trouvé la balise <base>, ou directement dans le .htaccess RewriteBase qui pourraient solutionner mon cas, mais je ne sais ni comment les utiliser, ni même s'ils sont adaptés à mon cas.
Egalement, le site fonctionne très bien AVANT ma tentative d'URL rewriting. Je ne changerai donc pas la forme du site, j'en suis très content, et suis sûr qu'il existe une solution pour mon cas (j'anticipe déjà certaines réponses...).

Voilà j'espère avoir été clair dans mon explication, mais ayant la tête dedans depuis plusieurs jours, il se peut que j'ai oublié certains détails. Dans quel cas je vous remercie d'avance de votre indulgence (:-)) et reste au taquet pour vous donner tout détail supplémentaire.

Très bonne journée.

WW

7 réponses

GuiguiDeParis
11 janv. 2011 à 17:13
Exactement le même souci. T'aurais aidé au moins 4 personnes si t'avais donné ta solution (qui je suppose est surement pas très subtile et simple a expliquer).
Merci de ta contribution au site. Prochain bug compte pas sur la communauté pour t'aider.
1
guiguideParis
17 janv. 2011 à 10:16
Donc en ce qui concerne les doublons c'est simple il suffisait d'utiliser la balise html : <base href="http://monsite/dossier/" />

Encore merci a windingworm pour avoir rédigé son problème sans donner la solution.
1
windingworm Messages postés 16 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 février 2009
8 août 2008 à 17:44
up
0
smashit Messages postés 1 Date d'inscription dimanche 10 mai 2009 Statut Membre Dernière intervention 10 mai 2009
10 mai 2009 à 16:10
Hey,

J'ai exactement le même problème que toi. Ce serait cool si tu pouvais me donner ta solution à ce sujet.

Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bravo, très bel esprit, merci de ne pas avoir partagé votre solution, votre philosophie est exemplaire.
0
Parfaitement d'accord avec John. Ayant le même souci, le partage de la solution m'aurait bien aidé ...
C'est un peu égoïste comment comportement.
0
windingworm Messages postés 16 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 février 2009
23 févr. 2009 à 14:23
Résolu, mais pas grâce à vous, donc nous en resterons là :)
-6