Comment faire en sorte que Chrome arrête la mise en cache des redirections?

416

Je travaille sur une application Web qui utilise redirects(pour de jolies URL).

J'essaie de déboguer la logique dans la façon dont les redirections fonctionnent. Cependant, Google Chrome garde en mémoire les redirections et même après avoir modifié le code, redirige de la même manière.

Cela rend très difficile à dépanner.

Par exemple, si je redirige /thisvers /that, modifiez mon code pour ne /thisplus rediriger . Google Chrome redirige toujours vers /that. Comme la redirection est en cache ou quelque chose. Y a-t-il un moyen de désactiver cela?

JD Isaacks
la source
Cela se produit-il quand vous redémarrez? Il devrait s'arrêter après une nouvelle session avec une nouvelle session
aléatoire
1
@random, le redémarrage de chrome semble résoudre le problème. Cependant, j'ai souvent de nombreuses fenêtres ouvertes (c.-à-d. Docs, connexions à une base de données, tutoriels, page sur laquelle je travaille, etc.). Si je dépanne quelque chose, plusieurs tentatives sont nécessaires avant de savoir ce qui se passe. Je ne considérerais pas vraiment comme idéal de devoir continuer à fermer toutes mes fenêtres. Merci.
JD Isaacks
2
Solution: utilisez les redirections 302 (temporaires) lors des tests et passez à 301 (permanent) lorsque vous avez terminé. (Avertissement: certains navigateurs (Firefox) mettront en cache même les redirections 302 lorsqu’ils passeront de la version http à la version https de la même page.)
TRiG
1
Entrer dans une nouvelle www.mywebsite/?someparam=somevalueœuvre pour moi
Mustafa
1
@JDIsaacks vous pouvez utiliser un Chrome exclusivement pour le débogage (par exemple, Chrome Canary)
athosbr99

Réponses:

329

Google Chrome mettra en cache vos redirections 301 . Pour résoudre ce problème et garder les onglets ouverts, il vous suffit d'effacer le cache de votre navigateur.

Menu Chrome Menu Chrome> Paramètres> Afficher les paramètres avancés ...> Confidentialité> Cliquez sur Effacer les données de navigation ...

Quoi que vous sélectionniez, assurez-vous que l'option "Images et fichiers en cache" est cochée.

Cliquez ensuite sur Effacer les données de navigation et vous devriez pouvoir effectuer un nouveau test.

Si vous venez de suivre la redirection, il vous suffit de supprimer les données de la dernière heure.

Vous pouvez également tester et développer en mode incognito. Là, le cache est vidé après la fermeture du navigateur.

aléatoire
la source
3
Dernière version de chrome, cette option serait "Images et fichiers en cache" au lieu de "Vider le cache"
Dan R
23
Je continue à être redirigé, même en mode de navigation privée.
Gaia
2
@ Gaia oui, cela semble être un problème dans Chrome incognito. Si vous ne faites que tester, vous pouvez utiliser Firefox pour cela. La navigation privée dans Firefox fonctionne très bien :)
chhantyal
10
Notez que HTTP 301 est déplacé de manière permanente afin que la réponse en cache soit parfaitement autorisée. Si vous ne voulez pas que la réponse soit mise en cache, essayez 302 ou 307. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
un CVn
7
Le raccourci clavier pour cela est Ctrl+ Shift+ Delete.
0xcaff
151

Il s’agit du moyen le plus sûr d’effacer la mémoire collante de Chrome pour les redirections sans effacer toutes vos données de navigation (méthode utilisée par la réponse principale actuelle):

  1. Ouvrez le panneau Outils de développement ( optioncommandisous Mac ou ctrlshiftiWindows).

  2. Cliquez et maintenez l'icône de rechargement entrez la description de l'image ici

  3. Un menu va s'ouvrir

    entrez la description de l'image ici

  4. Choisissez la 3ème option de ce menu ("Vider le cache et recharger")

Voici une excellente explication de la différence entre ces 3 options .

PS: pour éviter de devoir suivre ces étapes à chaque fois que la redirection est suivie par Chrome: cochez la case Désactiver le cache dans DevTools, et tant que DevTools est ouvert, Chrome contournera le cache de redirection (conformément à cette réponse ).

Gaia
la source
1
En passant: ce n'est pas disponible sur un Mac.
Arjan
5
cela ne supprime pas toujours les redirections en cache
Claudiu Creanga
7
Il est disponible sur Mac, mais le menu n'est disponible que si les outils de développement sont ouverts. Je suppose que cela pourrait être le même sous Windows.
Percy
1
@Arjan, il est disponible sur Mac à l'adresse superuser.com/questions/304589/…
Gaia du
4
Mac OS X, Yosemite. En luttant avec une redirection permanente http vers https, seule cette option a fonctionné. Tous les autres, y compris le "Disable cache (tant que DevTools est ouvert)", ne font aucune différence.
Carles Sala
115

Ce n'est pas une solution parfaite, mais j'ai pu empêcher Chrome d'utiliser la redirection mise en cache en transmettant une chaîne de requête fictive ou en ajoutant un paramètre erroné à la chaîne de requête existante. Par exemple, l'ajout d'un simple ?à la fin d'une URL sans q chaîne de requête a fonctionné pour moi sur Chrome 30 sous Max OS X.

sradack
la source
10
Oui, ça marche. example.comdevient example.com?. C'est le plus facile du peloton
fregante
2
C'est un truc génial. Je suppose que vous pouvez l'utiliser indéfiniment ?abc, ?abc2etc ...
Brentonstrine
2
Cela n'a pas fonctionné pour moi. Même en utilisant un autre port (: 8080), il a été remplacé par https, ce qui semble être un bug de Chrome.
jwadsack
Je fais déjà la même chose, mais cela ne fonctionne pas toujours. Parfois, il faut appuyer sur les touches ctrl + Maj + r (ctrl + f5) pour obtenir la version la plus récente de la page Web ou des pages partielles incluses dans la page
M98
S'il y a un caractère générique mis en cache 301, cela peut ne pas fonctionner car il "se souvient" de tout transférer après le TLD.
Dhaupin
92

Il y a un bug "wontfix" Chromium à ce sujet ,

C'est le comportement attendu.

Notez que:

  1. Vous pouvez ajouter des en-têtes de contrôle de cache à un 301 et nous les suivrons (expiration, etc.).
  2. Si la ressource en question est une sous-ressource, le rechargement de la page entraînera une nouvelle validation de la redirection avec le serveur.
  3. Vous n'avez pas à perdre tout votre cache. Suivez simplement la redirection et supprimez la dernière heure.
dbr
la source
Qu'est-ce que "supprimer la dernière heure" veux dire? Comment faire?
Mikaël Mayer
1
@ MikaëlMayer Lorsque vous cliquez sur "Historique> Effacer les données de navigation", vous pouvez sélectionner une période pour supprimer les données ("l'heure écoulée", "la semaine écoulée", etc.)
dbr
Non..! Effacer les données de navigation d'un site ne supprimera pas le comportement de redirection 301. Pas dans le chrome 64.0.x quand même
patricktokeeffe
Si vous désactivez l'option "1 heure", vous vous déconnectez de tous les produits et comptes Google. Quel bon conseil ...
Luciano Fantuzzi
> Vous n'avez pas à perdre tout votre cache. Suivez simplement la redirection et supprimez la dernière heure. C'est encore pire que "supprimer la dernière redirection" qui est la fonctionnalité qu'ils ne corrigeraient pas.
rox0r
66

Si l'option "Désactiver le cache (tant que DevTools est ouvert)" est activée dans les DevTools, le simple fait de l'ouvrir est suffisant pour contourner le cache de redirection, sans pour autant perdre constamment votre session.

Mike Gossmann
la source
9
remarque: si devTools est ouvert, il existe un moyen rapide de supprimer le cache: cliquez sur le bouton ;)
Actualiser
5
cela ne fonctionne pas tout le temps. J'ai supprimé tout mon cache et redirige toujours. Cela fonctionne uniquement avec le mode incognito et vous obtenez un comportement constant
Claudiu Creanga
2
Pourquoi n'est-ce pas la meilleure solution? les autres sont affreux en comparaison!
Brian
4
Ne fonctionne plus ... Probablement travaillé en 2014
Lord Loh.
@ LordLoh. Je viens d'essayer ceci sur la dernière version de Chrome, et cela a fonctionné exactement comme prévu. Avec les devtools fermés, la redirection est mise en cache. Le rechargement de la page avec les outils ouverts ne redirige pas.
Mike Gossmann
20

Chrome met en cache les redirections HTTP et arrête de vérifier avec le site si la redirection a été modifiée. Cela peut être frustrant, car le moyen le plus simple de corriger (visiter le site et forcer une actualisation forcée) ne peut pas être utilisé car la redirection aura lieu avant que vous n'accédiez au lien. C'est un problème qui ne résoudra pas le problème .

Pour résoudre ce problème, vous pouvez effacer vos données de navigation, comme expliqué ici, ou vous pouvez suivre les étapes ci-dessous et éviter de perdre votre historique.

  1. Ouvrez les outils de développement Chrome outils de dev

  2. Cliquez dans les paramètres paramètres

  3. Vérifier le cache désactivé (alors que DevTools est ouvert) désactiver

  4. Visitez le site que vous vouliez et le problème de cache sera résolu.

Zanon
la source
2
Vous trouverez aussi l'option "désactiver le cache" sur l'onglet réseau, c'est la même option. Pour les redirections de débogage, je suggérerais également d'utiliser le "journal de conservation".
Trendfischer
15

Allez à chrome: // net-internals et à l'extrême droite, ouvrez le menu déroulant et choisissez "Effacer le cache". À partir de la version 48, c'était la seule chose qui fonctionnait pour moi pour effacer un cache 301 (redirection permanente) mis en cache.

Mise à jour: Malheureusement, à compter de la version 71 (décembre 2018), Google a supprimé la fonctionnalité net-internals.

McGuireV10
la source
1
Fonctionne sur Chrome 56
spencer.sm
Fonctionne toujours sur Chrome 67
SCO le
Ne fonctionne pas sur Chrome 71. La visionneuse d'événements net-internals et les fonctionnalités associées ont été supprimées.
userlond
8

Les domaines .dev sont obligés d'utiliser HTTPS sur Chrome 63+

Depuis Chrome 63, en décembre 2017, tous les domaines se terminant par .dev (et .foo) sont obligés d'utiliser HTTPS via un en-tête HTTP préchargé Strict Transport Security (HSTS) préchargé.

Plus d'informations ici: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

Lucas Bustamante
la source
C'était mon coupable à coup sûr! Je passe des heures à essayer de comprendre ce qui se passait. Merci d'avoir posté ceci!
Jabari
Cette réponse nécessite plus de votes. Ce n’est peut-être pas le problème du questionneur, mais ce sera pour beaucoup de développeurs qui trouvent cette réponse dans les résultats de leur recherche.
p.
Dieu! Qui aurait jamais eu une idée aussi brillante!
Pavel Niedoba le
7

Pour effacer le cache de redirection pour une seule page dans Chrome, affichez Source et effectuez une actualisation complète (CTRL + SHIFT + R).

Cela fonctionne car le navigateur source ne suit pas automatiquement les redirections 301.

Matthew Blackford
la source
4
N'a pas fonctionné pour moi dans Chrome 25
swrobel
3
Cela ne fonctionne pas si la redirection concerne toutes les pages. J'ai un www. -> pas de www. redirect - la redirection est donc sur le premier hit, je ne peux donc rien actualiser. Chaque fois que j'essaie d'aller à la page pour la rafraîchir, elle suit le 301 - alors c'est trop tard!
Ian Grainger
1
@Ian Que faire si vous tapez dans la barre d'adresse view-source: www.example.com? Est-ce que cela vous permet d'actualiser sans qu'il soit redirigé?
Matthew Blackford
1
@ MatthewBlackford AFAICT la même chose, je reçois en fait la source de la page redirigée. Je ne suis pas sûr que mon test était si bon, bien que TBH. J'ai supprimé l'historique de navigation pour "résoudre" ce problème.
Ian Grainger
2
Cela ne fonctionne que pour les redirections javascript et metatag. Les redirections HTTP sont toujours suivies
fregante
6

Comme décrit ici pourrait être causé par HSTS

Pour contourner cela, j'ai fait ce qui suit.

Dans la barre d'adresse de Chrome, tapez "chrome: // net-internals / # hsts". Au bas de la page, se trouve la zone de texte du domaine QUERY - vérifiez que votre site (localhost, par exemple) est connu du navigateur. Si c'est le cas, supprimez localhost. domaine utilisant la zone de texte ci-dessus Votre site devrait maintenant fonctionner avec du vieux HTTP ordinaire

Tonino
la source
1
Hey, merci. Cela aide vraiment avec le cache soudain de redirections https.
Ruberoid
5

Dans Chrome ou Firefox, vous pouvez actualiser la redirection en tapant "view-source: redirect.yoursite.com" et en appuyant sur Entrée. Ensuite, actualisez cette page. Cela devrait forcer Chrome ou Firefox à actualiser la redirection.

Mrbofus
la source
C'est la seule réponse qui a fonctionné pour moi.
JaredThirsk
4

Si vous voulez juste vérifier que les redirections fonctionnent comme prévu, il est probablement plus facile d'utiliser un outil de ligne de commande comme wget ou similaire. Vous pouvez inspecter les en-têtes de réponse et les redirections ne sont pas mises en cache.

Tom Wilson
la source
3

Dans le but de développer, je vous recommande dans Chrome d’ouvrir les paramètres de DevTools et de cocher la case "Désactiver le cache". Ensuite, les redirections 30x ne sont pas mises en cache et vous pouvez déboguer des fichiers .htaccess et ainsi de suite! entrez la description de l'image ici

Lukyer
la source
La chose étrange est que cette option n'aide pas. J'ai désactivé le cache, mais il est toujours indiqué dans l'onglet Réseau 301 Moved Permanently (from disk cache).
mgutt
C’est la même chose que de cliquer sur «Désactiver le cache» lorsque l’onglet Réseau est ouvert. Nope - n'efface pas les redirections.
bshea
1
  1. Aller à chrome://settings/search#clear%20browsing%20data

  2. Cliquez sur "Effacer les données de navigation"

  3. Cochez "Images et fichiers en cache" (et décochez les autres si vous le souhaitez)

  4. Cliquez sur "Effacer les données de navigation"

entrez la description de l'image ici

guaka
la source
1

méthode la plus simple, hard refresh. maintenez Ctrl+ Rquelques secondes. Cela efface les redirections ainsi que les ressources statiques.

Ryu_hayabusa
la source
Pourquoi voudriez-vous le tenir au lieu de simplement appuyer Ctrl+R?
gronostaj
@gronostaj Ma réponse n'était-elle pas claire et simple? . Sans tenir, ce serait juste un rafraîchissement normal. Ce qui n'efface pas les ressources en cache ou les redirections.
Ryu_hayabusa
Tenir, c'est comme si on appuyait plusieurs fois. Ouvrez le Bloc-notes et maintenez R, plusieurs R apparaissent. C'est exactement pareil, mais avec Ctrl. Tenir Ctrl+ Réquivaut exactement à appuyer dessus quelques dizaines de fois par seconde pendant quelques secondes. Ce n'est pas intelligent, c'est abuser du mécanisme d'actualisation intégré et s'appuyer sur un comportement non documenté.
gronostaj
@gronostaj Oui, il s'agit d'un comportement non documenté. La réponse acceptée ne fonctionne pas pour moi. C'est pourquoi je l'ai partagé ici. Je ne vois pas d'autre moyen d'effacer la redirection en cache. Si vous connaissez d'autres méthodes, n'hésitez pas à les partager.
Ryu_hayabusa
Essayé et n'a pas fonctionné (301 redirection sur tout le domaine).
mgutt
1

Si vous ne voulez pas perdre tout votre cache et que votre redirection est toujours bloquée dans le cache, vous pouvez essayer de consulter la version de view-source: of the url. Cela a rafraîchi le cache de redirection de la même URL pour moi.

Ogier Schelvis
la source
0

J'ai essayé toutes les réponses sur cette page mais aucune n'a fonctionné tant que je n'ai pas exécuté flushdns sur la fenêtre de la ligne de commande de Windows.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

Pour votre information, j'avais déjà Disable cachevérifié comme mentionné dans cette réponse.

Damodar Bashyal
la source