Rechercher : dans
Par :

Problème URL rewriting

Dernière réponse le 23 jun 2009 à 16:20:34 windingworm, le 8 aoû 2008 à 11:27:53 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Problème URL rewriting » dans :
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
[PHP] Transformer une URL en lien hypertexte cliquable VoirGrâce aux expressions régulières, il est possible de transformer en lien hypertexte toute URL de la forme http://URL (ou ftp://URL) ou bien commençant par www. :
Télécharger URL File Editor VoirPour l’exécution de certains fichiers interactifs, il est nécessaire de se connecter à Internet. Ces fichiers sont redirigés directement à un lien Internet prédéfini par l’éditeur du fichier. URL File Editor est comme son nom...
URL VoirQu'est-ce qu'une URL? Une URL (Uniform Resource Locator) est un format de nommage universel pour désigner une ressource sur Internet. Il s'agit d'une chaîne de caractères ASCII imprimables qui se décompose en cinq parties : Le nom du...
Attaques par manipulation d'URL VoirIntroduction aux URL L'URL (Uniform Resource Locator) d'une application web est le vecteur permettant d'indiquer la ressource demandée. Il s'agit d'une chaîne de caractères ASCII imprimables qui se décompose en cinq parties : Le nom du...

1

windingworm, le 8 aoû 2008 à 17:44:31

Up

Répondre à windingworm

2

windingworm, le 23 fév 2009 à 14:23:15

Résolu, mais pas grâce à vous, donc nous en resterons là :)

Répondre à windingworm

3

smashit, le 10 mai 2009 à 16:10:25

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

Répondre à smashit

4

 john, le 23 jun 2009 à 16:20:34

Bravo, très bel esprit, merci de ne pas avoir partagé votre solution, votre philosophie est exemplaire.

Répondre à john