web-dev-qa-db-fra.com

Apache - comment désactiver la mise en cache du navigateur lors du débogage de htaccess

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:

  • Redirige example.com/hi vers example.com/hello, teste dans FireFox et cela fonctionne
  • Supprimer cette ligne de .htaccess
  • Tapez exemple.com/hi dans FireFox, il redirige toujours vers exemple.com/hello
  • Tapez example.com/hi dans Chrome, il ne redirige pas

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.

20
hamboy

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.

14
Dan Ambrisco

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.

Clear network cache in Firefox preferences

Voir https://support.mozilla.org/en-US/kb/how-clear-firefox-cache

10
Lode

Dans Google Chrome, ouvrez un nouvel onglet en mode "incognito" à l'aide de:

CTRL-SHIFT-N

Très utile pour le débogage.

5
Dr Beco

Pour forcer la suppression des caches htaccess/redirect dans Google Chrome :

  1. Allez dans Paramètres> Avancé> Confidentialité> Effacer les données de navigation 
  2. Sélectionnez "Images et fichiers en cache"
  3. Cliquez sur Effacer les données de navigation

Votre page devrait maintenant charger les nouveaux paramètres htaccess.

4
Andrew

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.

2
Vaughn D. Taylor

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.

2
Gdev

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)".

0
Cong Nguyen

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.

0