Bonjour,
Grâce aux tutos sur le sujet de l'URL rewriting, j'ai pu réaliser avec succès un petit projet de test avec les fichiers PHP, CSS, Javascript et images dans le même répertoire mais quand je passe au cas réel où le CSS, le Javascript et les images sont dans des dossiers séparés du PHP, j'ai un problème apparemment avec les URL relatives.
Dans le .htaccess, j'ai défini la règle suivante :
Ce qui donne que l'URL affichée http://www.le_site.com/la_page/les-p...par-des-tirets est transformée en ew-general-controller.php?page=la_page¶ms=les-parametres-séparés-par-des-tirets.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^([a-zA-Z-]*)\/([a-zA-Z-]*)$ /le_site/ew-general-controller.php?page=$1¶ms=$2 [L]
Avantage : avec une seule règle, tout passe par un seul contrôleur qui appelle la page réelle et on peut avoir autant de paramètres que l'on veut.
Sauf que les liens HTML qui fonctionnaient avant ne fonctionnent plus :
Résultat avec l'URL rewriting : pas de formatage CSS de la page et erreur dans un code javascript inclus qui utilise JQuery.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <link rel="stylesheet" href="css/styles.css" type="text/css" media="screen" /> <script type="text/javascript" src="js/jquery-1.4.3.min.js"></script>
J'ai réussi à faire fonctionner correctement tout ça en changeant les liens :
C'est à dire que Apache semble considérer que la partie /la_page/ de l'url demandée est un sous-dossier et qu'il faut remonter ce sous-dossier fictif pour accéder aux répertoires CSS et Javascript.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <link rel="stylesheet" href="../css/styles.css" type="text/css" media="screen" /> <script type="text/javascript" src="../js/jquery-1.4.3.min.js"></script>
Le problème est que je reprends un site existant et qu'il y a beaucoup de liens à changer. en plus, tout ces ../, je ne trouve pas ça très beau.
Y a t-il un moyen de dire à Apache qu'en fait il se trouve bien à la racine du site et doit considérer toutes les URL à partir de cette racine et non pas d'un sous-dossier qui n'existe pas ?
Partager