Come posso fare in modo che Chrome smetta di reindirizzare la cache?


416

Sto lavorando a un'applicazione Web che sta utilizzando redirects(per URL belli).

Sto cercando di eseguire il debug della logica nel modo in cui funzionano i reindirizzamenti. Tuttavia Google Chrome continua a ricordare i reindirizzamenti e anche dopo aver modificato il codice, reindirizzando allo stesso modo.

Questo rende molto difficile la risoluzione dei problemi.

Ad esempio, se reindirizzo /thisa /that, quindi cambio il mio codice per NON reindirizzare /thispiù. Google Chrome sta ancora reindirizzando a /that. Come il reindirizzamento è memorizzato nella cache o qualcosa del genere. C'è un modo per spegnerlo?


Succede ancora al riavvio? Dovrebbe arrestarsi dopo il riavvio con una nuova sessione
casuale

1
@Random, riavviare Chrome sembra risolverlo. Tuttavia, di solito ho molte finestre aperte (ad esempio: documenti, connessioni db, tutorial, la pagina su cui sto lavorando, ecc.) Se sto risolvendo qualcosa, possono essere necessari diversi tentativi prima di capire cosa sta succedendo. Non lo considero davvero l'ideale per continuare a chiudere tutte le mie finestre. Grazie.
JD Isaacks,

2
Soluzione alternativa: utilizzare 302 reindirizzamenti (temporanei) durante il test e passare a 301 (permanente) al termine. (Avvertenza: alcuni browser (Firefox) memorizzeranno nella cache anche 302 reindirizzamenti quando passano dalle versioni http a https della stessa pagina.)
TRiG

1
Inserendo un nuovo www.mywebsite/?someparam=somevaluelavoro per me
Mustafa,

1
@JDIsaacks potresti usare un Chrome esclusivamente per il debug (es. Chrome Canary)
athosbr99

Risposte:


329

Google Chrome memorizzerà nella cache i tuoi reindirizzamenti 301 . Per aggirare questo problema e tenere aperte le schede, è sufficiente svuotare la cache del browser.

Menu Chrome Menu di Chrome> Impostazioni> Mostra impostazioni avanzate ...> Privacy> Fai clic su Cancella dati di navigazione ...

Qualunque altra cosa selezioni, assicurati che "Immagini e file memorizzati nella cache" sia un'opzione selezionata.

Quindi fai clic su Cancella dati di navigazione e dovresti essere in grado di ripetere il test.

Se hai appena seguito il reindirizzamento, devi solo eliminare i dati dell'ultima ora.

In alternativa, prova e sviluppa in modalità di navigazione in incognito. Lì la cache viene svuotata dopo la chiusura del browser.


3
Ultima versione di Chrome, questa opzione sarebbe "Immagini e file memorizzati nella cache" invece di "Svuota la cache"
Dan R

23
Continuo a essere reindirizzato, anche in modalità di navigazione in incognito.
Gaia,

2
@Gaia sì, quello sembra essere un problema in incognito di Chrome. Se stai solo testando, potresti voler usare Firefox per questo. La navigazione privata di Firefox funziona bene :)
chhantyal,

10
Si noti che HTTP 301 viene spostato in modo permanente, pertanto la risposta nella cache è perfettamente consentita. Se non desideri che la risposta venga memorizzata nella cache, prova 302 o 307. it.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
un CVn

7
La scorciatoia da tastiera per questo è Ctrl+ Shift+ Delete.
0xcaff,

151

Questo è il modo sicuro per ripulire la memoria adesiva di Chrome per i reindirizzamenti senza cancellare tutti i dati di navigazione (metodo utilizzato dall'attuale risposta in alto):

  1. Apri il pannello Strumenti di sviluppo ( optioncommandisu Mac o ctrlshiftisu Windows)

  2. Fai clic e tieni premuta l'icona di ricarica inserisci qui la descrizione dell'immagine

  3. Si aprirà un menu

    inserisci qui la descrizione dell'immagine

  4. Scegli la terza opzione da questo menu ("Svuota cache e Ricarica dura")

Ecco una spiegazione eccellente di come queste 3 opzioni differiscono .

PS: per evitare di dover eseguire questi passaggi ogni volta che il reindirizzamento è seguito da Chrome: selezionare disabilita la cache in DevTools e mentre DevTools è aperto Chrome ignorerà la cache di reindirizzamento (per questa risposta )


1
A parte questo: questo non è disponibile su un Mac.
Arjan,

5
questo non elimina sempre i reindirizzamenti memorizzati nella cache
Claudiu Creanga,

7
È disponibile su Mac, ma il menu è disponibile solo se hai gli strumenti di sviluppo aperti. Presumo che questo potrebbe essere lo stesso su Windows.
Percy,

1
@Arjan è disponibile su Mac vedi superuser.com/questions/304589/…
Gaia,

4
Mac OS X, Yosemite. Combattendo con un reindirizzamento permanente da http a https, solo questa opzione funzionava. Tutti gli altri, incluso "Disabilita cache (mentre DevTools è aperto)", non hanno fatto alcuna differenza.
Carles Sala,

115

Non è una soluzione perfetta, ma sono stato in grado di impedire a Chrome di utilizzare il reindirizzamento memorizzato nella cache passando una stringa di query fasulla o aggiungendo un parametro fasullo alla stringa di query esistente. Ad esempio, l'aggiunta di un semplice ?alla fine di un URL che non aveva una stringa di query q funzionava per me su Chrome 30 su Max OS X.


10
Sì, questo funziona. example.comdiventa example.com?. È il più semplice del gruppo
fregante

2
Questo è un trucco fantastico. Presumo che tu possa usarlo indefinitamente ?abc, ?abc2ecc ...
Brentonstrine,

2
Questo non ha funzionato per me. Anche usando una porta diversa (: 8080) è cambiato in https che sembra un bug di Chrome.
jwadsack,

Sto già facendo la stessa cosa, ma non funziona sempre, a volte ho bisogno di premere ctrl + shift + r (ctrl + f5) per ottenere la versione più recente della pagina Web o pagine parziali incluse all'interno della pagina
M98

Se è presente un carattere jolly memorizzato nella cache 301, potrebbe non funzionare poiché "ricordando" di inoltrare tutto dopo il TLD.
Dhaupin,

92

C'è un bug "wontfix" di Chromium su questo ,

Questo è il comportamento previsto.

Nota che:

  1. Puoi aggiungere intestazioni di controllo della cache a un 301 e le seguiremo (scadenza ecc.)
  2. Se la risorsa in questione è una risorsa secondaria, ricaricare la pagina comporterà la riconvalida del reindirizzamento con il server.
  3. Non devi perdere l'intera cache. Segui il reindirizzamento ed elimina l'ultima ora.

Cosa significa "elimina l'ultima ora". si intende? Come farlo?
Mikaël Mayer,

1
@ MikaëlMayer Quando si fa clic su "Cronologia> Cancella dati di navigazione", è possibile selezionare un intervallo di tempo per rimuovere i dati ("ora passata", "settimana passata" ecc.)
dbr

No..! La cancellazione dei dati di navigazione per un sito non rimuoverà il comportamento di reindirizzamento 301. Non in Chromium 64.0.x comunque
patricktokeeffe

Cancellare "1 ora" ti disconnette da tutti i prodotti e account Google. Che bel consiglio ...
Luciano Fantuzzi,

> Non è necessario perdere l'intera cache. Segui il reindirizzamento ed elimina l'ultima ora. È ancora peggio di "elimina l'ultimo reindirizzamento" che è la funzione che non hanno risolto.
rox0r,

66

Se hai l'opzione "Disabilita cache (mentre DevTools è aperto)" abilitata in DevTools, semplicemente avere DevTools aperto è sufficiente per bypassare la cache di reindirizzamento, senza eliminare costantemente la sessione.


9
nota: se devTools è aperto, esiste un modo rapido per eliminare la cache: fare clic sul pulsante di aggiornamento con il tasto destro e selezionare Ricarica completa;)
user65130

5
questo non funziona sempre. Ho eliminato tutta la mia cache e ancora il reindirizzamento. Funziona solo con la modalità di navigazione in incognito e ottieni un comportamento coerente
Claudiu Creanga,

2
Perché questa non è la soluzione migliore? gli altri sono terribili in confronto!
Brian

4
Non funziona più ... Probabilmente ha funzionato nel 2014
Lord Loh.

@LordLoh. Ho appena provato questo sull'ultima versione di Chrome e ha funzionato esattamente come previsto. Con gli devtools chiusi, il reindirizzamento viene memorizzato nella cache. Il ricaricamento della pagina con gli strumenti aperti non reindirizza.
Mike Gossmann,

20

Chrome memorizza nella cache i reindirizzamenti HTTP e interrompe il controllo con il sito se il reindirizzamento è cambiato. Questo può essere frustrante, poiché il modo più semplice per risolvere (visitare il sito e forzare un aggiornamento forzato) non può essere utilizzato perché il reindirizzamento avverrà prima di accedere al collegamento. Questo non risolverà il problema .

Per ovviare a questo, è possibile cancellare i dati di navigazione, come spiegato qui oppure è possibile seguire i passaggi seguenti ed evitare di perdere la cronologia.

  1. Apri gli Strumenti di sviluppo di Chrome dev-tools

  2. Fai clic su Impostazioni impostazioni

  3. Controlla Disabilita cache (mentre DevTools è aperto) disattivare

  4. Visita il sito desiderato e il problema con la cache verrà risolto.


2
Troverai anche l'opzione "disabilita cache" nella scheda di rete, è la stessa opzione. Per i reindirizzamenti di debug suggerirei di utilizzare anche il "preservare il registro".
Trendfischer,

15

Vai su chrome: // net-internals e all'estrema destra apri il menu a discesa e scegli "Svuota cache". A partire dalla versione 48, questa è stata l'unica cosa che ha funzionato per me per cancellare un 301 (reindirizzamento permanente) nella cache.

Aggiornamento: Sfortunatamente, a partire dalla versione 71 (dicembre 2018) Google ha rimosso la funzione net-internals.


1
Funziona su Chrome 56
spencer.sm

Funziona ancora su Chrome 67
SCO

Non funziona su Chrome 71. Il visualizzatore eventi net-internals e le relative funzionalità sono stati rimossi.
userlond

8

I domini .dev sono costretti a utilizzare HTTPS su Chrome 63+

Da Chrome 63, in uscita a dicembre 2017, tutti i domini che terminano su .dev (e .foo) sono costretti a utilizzare HTTPS tramite un'intestazione HTTP Strict Transport Security (HSTS) precaricata.

Maggiori informazioni qui: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


Questo è stato sicuramente il mio colpevole! Trascorro ORE cercando di capire cosa diavolo stesse succedendo. Grazie per aver pubblicato questo!
Jabari,

Questa risposta richiede più voti. Potrebbe non essere il problema che ha avuto l'interrogante, ma sarà per molti sviluppatori che trovano questa risposta nei loro risultati di ricerca.
bp.

Dio! Chi avrebbe mai avuto un'idea così geniale!
Pavel Niedoba,

7

Per cancellare la cache di reindirizzamento per una singola pagina in Chrome, Visualizza sorgente ed esegui un aggiornamento intenso (CTRL + SHIFT + R).

Questo funziona in quanto il browser di origine non segue automaticamente i reindirizzamenti 301.


4
Non ha funzionato per me in Chrome 25
swrobel

3
Questo non funziona se il reindirizzamento è per tutte le pagine. Ho un www. -> no www. reindirizzamento - quindi il reindirizzamento è al primo colpo, quindi non posso aggiornare nulla. Ogni volta che provo ad andare alla pagina per aggiornare segue la 301 - quindi è troppo tardi!
Ian Grainger,

1
@Ian Cosa succede se si digita nella vista della barra degli indirizzi sorgente: www.esempio.com? Ti consente di aggiornare senza essere reindirizzato?
Matthew Blackford,

1
@MatthewBlackford AFAICT la stessa cosa, in realtà ottengo la fonte della pagina reindirizzata. Non sono sicuro che il mio test sia stato eccezionale, anche se TBH. Ho cancellato la cronologia di navigazione per "risolvere" questo problema.
Ian Grainger,

2
Funziona solo con reindirizzamenti javascript e metatag. I reindirizzamenti HTTP sono ancora seguiti
fregante il

6

Come descritto qui potrebbe essere causato da HSTS

Per aggirare questo, ho fatto quanto segue.

Nella barra degli indirizzi di Chrome digita "chrome: // net-internals / # hsts" Nella parte inferiore di una pagina c'è la casella di testo del dominio QUERY - verifica che il tuo sito (localhost ad es.) Sia noto al browser Se lo è, ELIMINA il localhost dominio utilizzando la casella di testo sopra Il tuo sito ora dovrebbe funzionare usando il semplice vecchio HTTP


1
Ehi, grazie. Questo aiuta davvero con improvvisi reindirizzamenti cache https.
Ruberoid,

5

In Chrome o Firefox, puoi aggiornare il reindirizzamento digitando "view-source: redirect.yoursite.com" e premendo invio. Quindi, aggiorna quella pagina. Ora, ciò dovrebbe forzare Chrome o Firefox ad aggiornare il reindirizzamento.


Questa è l'unica risposta che ha funzionato per me.
JaredThirsk,

4

Se vuoi solo controllare che i reindirizzamenti funzionino come previsto, è probabilmente più facile usare uno strumento da riga di comando come wget o simile. È possibile controllare le intestazioni di risposta e i reindirizzamenti non vengono memorizzati nella cache.


3

A scopo di sviluppo ti consiglio di aprire le impostazioni di DevTools in Chrome e selezionare "Disabilita cache". Quindi i reindirizzamenti 30x non vengono memorizzati nella cache e puoi eseguire il debug dei file .htaccess e così via! inserisci qui la descrizione dell'immagine


La cosa strana è che questa opzione non aiuta. Ho disabilitato la cache ma dice ancora nella scheda di rete 301 Moved Permanently (from disk cache).
mgutt,

Questa è esattamente la stessa cosa che fare clic su 'disabilita cache' mentre la scheda di rete è aperta. No: non cancella i reindirizzamenti.
bshea,

1
  1. Vai a chrome://settings/search#clear%20browsing%20data

  2. Fai clic su "Cancella dati di navigazione"

  3. Seleziona "Immagini e file memorizzati nella cache" (e deseleziona il resto se vuoi)

  4. Fai clic su "Cancella dati di navigazione"

inserisci qui la descrizione dell'immagine


1

metodo più semplice, hard refresh. tieni premuto Ctrl+ Rqualche secondo. Questo cancella i reindirizzamenti e le risorse statiche.


Perché dovresti tenerlo invece di premere semplicemente Ctrl+R?
gronostaj,

@gronostaj La mia risposta non era chiara e semplice ?? . Senza trattenere, sarebbe solo un normale aggiornamento. Che non cancella risorse memorizzate nella cache o reindirizzamenti.
Ryu_hayabusa,

Tenere premuto è come premerlo più volte. Apri Blocco note e tieni premuto R, appariranno più R. Questo è esattamente lo stesso, ma con Ctrl. Tenere premuto Ctrl+ Requivale esattamente a premerlo una dozzina di volte al secondo per alcuni secondi. Non è intelligente, abusa del meccanismo di aggiornamento integrato e si basa su comportamenti non documentati.
gronostaj,

@gronostaj Sì, è un comportamento non documentato. La risposta accettata non funziona per me. Ecco perché l'ho condiviso qui. Non vedo altro modo per cancellare il reindirizzamento memorizzato nella cache. Se conosci altri metodi, sentiti libero di condividere.
Ryu_hayabusa,

Ho provato e non ha funzionato (reindirizzamento 301 su tutto il dominio).
mgutt,

1

Se non vuoi perdere l'intera cache e il reindirizzamento è ancora bloccato nella cache, puoi provare a visitare la view-source: versione dell'URL. Ciò ha rinfrescato la cache di reindirizzamento dello stesso URL per me.


0

Ho provato tutte le risposte su questa pagina ma nessuna ha funzionato fino a quando non ho eseguito flushdns nella finestra della riga di comando di Windows.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

Cordiali saluti, avevo già Disable cachecontrollato come indicato in questa risposta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.