Je suis en train de réorganiser la structure de liens d'un site dynamique basé sur php. Ce que j'essaie d'obtenir, c'est:
Le seul fichier . Htaccess est contenu dans le dossier racine du site Web. Il n'y a pas d'autres fichiers .htaccess dans les sous-dossiers.
Jusqu'à aujourd'hui, je n'ai eu aucun problème à réorganiser les liens en modifiant les règles dans . Htaccess . Depuis hier, je rencontre un problème étrange: il semble que les modifications apportées au fichier .htaccess ne soient pas lues immédiatement par le serveur Web Apache , appliquer les anciennes règles même si elles ne figurent plus dans le fichier . htaccess . Par exemple, j'ai une règle qui effectue le mappage suivant:
/cat-a/subcat-b/page.html -> /file.php?cat=cat-a&subcat=subcat-b
Si je modifie cette règle comme suit:
/cat-a/subcat-b/page.html -> /file.php?XXcatXX=cat-a&subcat=subcat-b
Apache continue de réécrire les URL selon l'ancien format (cat = cat ...) pendant un certain temps. Le nouveau format (XXcatXX = ...) est utilisé uniquement après un laps de temps aléatoire . Aléatoire, ce qui signifie que je ne pouvais trouver aucun modèle dans son comportement.
De plus, si je supprime une règle, Apache continue de l’utiliser pendant un certain temps.
La seule régularité que j'ai trouvée concerne les nouvelles règles de réécriture: Apache les lit immédiatement et commence à les utiliser. Si je supprime une règle ou en modifie une existante, Apache ignore les modifications pendant un moment.
Je remarque ce problème uniquement sur les instructions RewriteRule et non sur les redirections. Les redirections et les réécritures étant gérées par différents modules, je suppose que je dois modifier certains paramètres de la configuration mod_rewrite.
J'ai fait des recherches mais je n'ai trouvé aucune information/documentation sur ce comportement. Peut-être y at-il quelque chose que j'ignore et que je manque.
Y a-t-il des réglages qui me préoccupent? Avez-vous déjà rencontré un problème similaire?
J'utilise XAMPP sur un ordinateur Mac OS SnowLeopard.
Merci. Cordialement. UNE.
J'utilise XAMPP sur Windows 7 et je rencontrais le même problème. Il ressort de mes expériences que la mise en cache des redirections est effectuée par le navigateur Web et non par Apache.
Démontrer:
RewriteRule ^fail/?$ fail.php [L,R=301]
/fail
dans votre navigateur Web. Vous devriez être redirigé vers fail.php
fail.php
à fail2.php
/fail
dans votre navigateur Web.fail2.php
, mais vous vous retrouvez à fail.php
/fail
dans un autre navigateur Web sur le même ordinateur, vous devriez vous retrouver correctement à fail2.php
.Le navigateur qui me donnait des problèmes était Firefox 6.0.
Il semble que le navigateur Web le plus récent mette en cache localement les redirections HTTP 301 - elles sont définies comme des redirections permanentes et ne devraient donc jamais être modifiées. Cependant, c'est un problème lorsque vous êtes développeur et que vous travaillez toujours sur un site et que vous changez les choses.