J'essaie de déboguer un fichier .htaccess. FireFox conserve la mise en cache des redirections et je ne peux pas les contourner. Normalement, j'appuyais sur Ctrl + F5, mais comme il m'a déjà redirigé vers une autre page, la page à laquelle j'ai été envoyé est actualisée et non l'URL saisie. Y a-t-il moyen de forcer l'actualisation d'une URL?
Voici un exemple:
C'est pourquoi je pense que c'est un problème de mise en cache du navigateur, pas de la mise en cache du serveur.
Edit: Cela semble être spécifique à FireFox, une solution rapide consiste à utiliser Chrome à la place. Le cache a expiré après une heure, ce qui est beaucoup trop long lorsque vous essayez de déboguer.
Si vous utilisez RewriteRule, utilisez simplement R au lieu de R = 301. À d'autres fins, vous devrez vider le cache de votre navigateur chaque fois que vous modifiez une redirection. (Si vous ne savez pas comment vider le cache de votre navigateur, vous devriez trouver une réponse rapide et facile sur Google pour trouver une procédure - ou n'hésitez pas à commenter et je vous aiderai.)
Autrement dit, essayez d'éviter autant que possible les 301 jusqu'à ce que vos redirections fonctionnent normalement. Si vous ne pouvez pas les éviter, préparez-vous à vider le cache de votre navigateur régulièrement.
Effacer le cache réseau de Firefox fonctionne pour moi. Aussi pour les redirections 301.
Préférences/Options> Avancé> Réseau> Contenu Web mis en cache.
Voir https://support.mozilla.org/en-US/kb/how-clear-firefox-cache
Dans Google Chrome, ouvrez un nouvel onglet en mode "incognito" à l'aide de:
CTRL-SHIFT-N
Très utile pour le débogage.
Pour forcer la suppression des caches htaccess/redirect dans Google Chrome :
Votre page devrait maintenant charger les nouveaux paramètres htaccess.
Je pense que cela vaut la peine de peser ici au cas où mon expérience pourrait aider quelqu'un. Je passe régulièrement d'une branche de développement à une autre sur ma machine locale. La branche de développement correspond à mon environnement local et la branche de production à mon serveur distant. Le fichier .htaccess est la seule différence entre les deux environnements. Mon serveur distant a besoin d'une règle de réécriture si quelqu'un n'entre pas "www" avant l'URL:
# If www is missing from the beginning of the URL
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]
Toutefois, cette règle de réécriture ne fonctionne pas pour mon environnement local en raison de la structure de l'URL. Donc, dans ma version locale de .htaccess, je commente les règles de réécriture.
Ce que j'ai remarqué, c'est que Chrome ne semble pas se rendre sur mon serveur local pour obtenir le dernier fichier .htaccess à chaque fois. Cela met évidemment en cache la réécriture car lorsque je passe de ma branche de production à ma branche de développement, je reçois un résultat ressemblant à ceci:
www.www-local.myurl.local
Si j'utilise Safari, j'obtiens l'URL correcte:
www-local.myurl.local
Pour résoudre ce problème de Chrome, je suis allé à Outils de développement> Paramètres> Général> et cochez la case "Désactiver le cache (tant que DevTools est ouvert)".
Avec cette case cochée, je dois juste ouvrir Outils de développement et recharger pour obtenir le fichier .htaccess actuel.
Dans Firefox, ouvrez Developer Toolbar en appuyant sur Option Commande I . Cliquez ensuite sur Paramètres (une petite icône de rouage) et sous Paramètres avancés cochez la case en regard de Désactiver le cache HTTP (lorsque la boîte à outils est ouverte) . Cela a fait le tour pour moi.
Dans Google Chrome, ouvrez la barre d’outils du développeur. Cliquez ensuite sur Paramètres (il s’agit d’une icône à 3 points) et sous la section Réseau, cochez la case "Désactiver le cache (tant que DevTools est ouvert)".
Après avoir essayé d'actualiser mon cache d'innombrables fois, j'ai décidé de supprimer les cookies de mon site. Je ne sais pas pourquoi ni comment, mais cela m'a été effacé. C'est peut-être quelque chose de spécifique à Magento mais cela peut être plus général.