Wie kann ich verhindern, dass Chrome Weiterleitungen zwischenspeichert?

415

Ich arbeite an einer Webanwendung, die redirects(für hübsche URLs) verwendet.

Ich versuche, die Logik so zu debuggen, wie die Weiterleitungen funktionieren. Google Chrome merkt sich jedoch weiterhin die Weiterleitungen und leitet sie auf dieselbe Weise weiter, nachdem ich den Code geändert habe.

Dies erschwert die Fehlerbehebung erheblich.

Zum Beispiel , wenn ich umleiten /thiszu /that, dann meinen Code zu ändern , um nicht zu umleiten /thismehr. Google Chrome leitet weiter zu /that. Als ob die Weiterleitung zwischengespeichert wird oder so. Gibt es eine Möglichkeit, dies auszuschalten?

JD Isaacks
quelle
Tritt dies beim Neustart immer noch auf? Es sollte nach einem Neustart mit einer neuen Sitzung aufhören
zufällig
1
@ Random, ein Neustart von Chrome scheint das Problem zu beheben. Normalerweise sind jedoch viele Fenster geöffnet (z. B. Dokumente, Datenbankverbindungen, Lernprogramme, die Seite, an der ich arbeite usw.). Wenn ich Probleme behebe, kann es mehrere Versuche dauern, bis ich herausgefunden habe, was los ist. Ich würde es nicht wirklich für ideal halten, alle meine Fenster schließen zu müssen. Vielen Dank.
JD Isaacks
2
Problemumgehung: Verwenden Sie beim Testen 302 (temporäre) Weiterleitungen und wechseln Sie zu 301 (permanent), wenn Sie fertig sind. (Vorsichtsmaßnahme: Einige Browser (Firefox) speichern sogar 302 Weiterleitungen im Cache, wenn sie von http zu https-Versionen derselben Seite
wechseln
1
Ein neues www.mywebsite/?someparam=somevalueWerk für mich
Mustafa
1
@JDIsaacks Sie könnten ein Chrome ausschließlich zum Debuggen verwenden (dh Chrome Canary)
athosbr99

Antworten:

329

Google Chrome speichert Ihre 301-Weiterleitungen im Cache . Um dies zu umgehen und die Registerkarten offen zu halten, müssen Sie lediglich den Browser-Cache leeren.

Chrome-Menü Chrome-Menü> Einstellungen> Erweiterte Einstellungen anzeigen ...> Datenschutz> Klicken Sie auf Browserdaten löschen ...

Was auch immer Sie auswählen, vergewissern Sie sich, dass "Zwischengespeicherte Bilder und Dateien" aktiviert ist.

Klicken Sie dann auf Browserdaten löschen und Sie sollten erneut testen können.

Wenn Sie gerade der Umleitung gefolgt sind, müssen Sie nur Daten aus der letzten Stunde löschen.

Alternativ können Sie im Inkognito-Modus testen und entwickeln. Dort wird der Cache nach dem Schließen des Browsers geleert.

zufällig
quelle
3
Neueste Version von Chrome, diese Option wäre "zwischengespeicherte Bilder und Dateien" anstelle von "Cache leeren"
Dan R
23
Ich werde weitergeleitet, auch im Inkognito-Modus.
Gaia
2
@ Gaia ja, das scheint ein Problem in Chrome Incognito zu sein. Wenn Sie nur testen, möchten Sie möglicherweise Firefox dafür verwenden. Firefox Private Browsing funktioniert gut :)
chhantyal
10
Beachten Sie, dass HTTP 301 permanent verschoben wird, sodass das Zwischenspeichern der Antwort vollkommen zulässig ist. Wenn die Antwort nicht zwischengespeichert werden soll, versuchen Sie 302 oder 307. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
ein
7
Die Tastenkombination hierfür ist Ctrl+ Shift+ Delete.
0xcaff
151

Dies ist der sichere Weg, um den Sticky-Speicher von Chrome für Weiterleitungen zu löschen, ohne alle Ihre Browserdaten zu löschen (Methode, die von der aktuellen Top-Antwort verwendet wird):

  1. Öffnen Sie das Developer Tools- Bedienfeld ( optioncommandiauf Mac oder ctrlshiftiWindows).

  2. Klicken Sie auf das Symbol zum erneuten Laden und halten Sie es gedrückt Bildbeschreibung hier eingeben

  3. Ein Menü wird geöffnet

    Bildbeschreibung hier eingeben

  4. Wählen Sie die 3. Option aus diesem Menü ("Cache leeren und neu laden")

Hier ist eine hervorragende Erklärung, wie sich diese drei Optionen unterscheiden .

PS: Um zu vermeiden, dass Sie diese Schritte jedes Mal ausführen müssen, wenn die Weiterleitung von Chrome gefolgt wird: Aktivieren Sie das Kontrollkästchen Cache in DevTools deaktivieren. Wenn DevTools geöffnet ist, umgeht Chrome den Weiterleitungscache (gemäß dieser Antwort ).

Gaia
quelle
1
Nebenbei bemerkt: Dies ist auf einem Mac nicht verfügbar.
Arjan
5
Dies löscht nicht immer zwischengespeicherte Weiterleitungen
Claudiu Creanga
7
Es ist auf dem Mac verfügbar, aber das Menü ist nur verfügbar, wenn Sie die Entwicklertools geöffnet haben. Ich gehe davon aus, dass dies unter Windows auch so sein könnte.
Percy
1
@Arjan es ist auf einem Mac verfügbar, siehe superuser.com/questions/304589/…
Gaia
4
Mac OS X, Yosemite. Bei einem permanenten Redirect von http zu https funktionierte nur diese Option. Alle anderen, einschließlich "Cache deaktivieren (während DevTools geöffnet ist)", machten keinen Unterschied.
Carles Sala
115

Es ist keine perfekte Lösung, aber ich konnte Chrome daran hindern, die zwischengespeicherte Weiterleitung zu verwenden, indem ich eine falsche Abfragezeichenfolge übergab oder der vorhandenen Abfragezeichenfolge einen falschen Parameter hinzufügte. Das Hinzufügen einer einfachen ?an das Ende einer URL, für die keine q-Abfragezeichenfolge angegeben wurde, hat beispielsweise in Chrome 30 unter Max OS X funktioniert.

sradack
quelle
10
Ja, das funktioniert. example.comwird example.com?. Ich bin der einfachste im
ganzen
2
Das ist ein toller Trick. Ich nehme an, Sie können dies auf unbestimmte Zeit nutzen ?abc, ?abc2etc ...
Brentonstrine
2
Das hat bei mir nicht funktioniert. Selbst wenn ein anderer Port (: 8080) verwendet wird, ändert sich dieser zu https, was wie ein Chrome-Fehler aussieht.
Jwadsack
Ich mache bereits das Gleiche, aber es funktioniert nicht immer. Manchmal muss ich Strg + Umschalt + R (Strg + F5) drücken, um die neuere Version der Webseite oder Teil-Seiten zu erhalten, die in der Seite enthalten sind
M98
Wenn es einen zwischengespeicherten Platzhalter 301 gibt, funktioniert dies möglicherweise nicht, da er sich "erinnert", alles nach der TLD weiterzuleiten.
Dhaupin
92

Es gibt einen "Wontfix" Chromium Bug ,

Das ist das erwartete Verhalten.

Beachten Sie, dass:

  1. Sie können einem 301 Cache-Steuerelement-Header hinzufügen, und wir werden ihnen folgen (Ablauf usw.).
  2. Wenn es sich bei der fraglichen Ressource um eine Subressource handelt, wird beim erneuten Laden der Seite die Umleitung auf dem Server erneut überprüft.
  3. Sie müssen nicht den gesamten Cache verlieren. Folgen Sie einfach der Umleitung und löschen Sie die letzte Stunde.
dbr
quelle
Was bedeutet "die letzte Stunde löschen." meint? Wie es geht?
Mikaël Mayer
1
@ MikaëlMayer Wenn Sie auf "Verlauf> Browserdaten löschen" klicken, können Sie einen Zeitraum zum Entfernen von Daten auswählen ("vergangene Stunde", "vergangene Woche" usw.)
Dienstag,
Nein..! Durch das Löschen der Browserdaten für eine Site wird das 301-Umleitungsverhalten nicht entfernt. Trotzdem nicht in Chromium 64.0.x
patricktokeeffe
Wenn Sie "1 Stunde" deaktivieren, werden Sie von allen Google-Produkten und -Konten abgemeldet. Was für ein guter Rat ...
Luciano Fantuzzi
> Sie müssen nicht den gesamten Cache verlieren. Folgen Sie einfach der Umleitung und löschen Sie die letzte Stunde. Das ist immer noch schlimmer als "Letzte Weiterleitung löschen", was die Funktion ist, die sie nicht behoben haben.
Rox0r
66

Wenn Sie die Option "Cache deaktivieren (während DevTools geöffnet ist)" in den DevTools aktiviert haben, reicht es aus, die DevTools nur geöffnet zu haben, um den Umleitungscache zu umgehen, ohne Ihre Sitzung ständig wegzuwerfen.

Mike Gossmann
quelle
9
Hinweis: Wenn devTools geöffnet ist, können Sie den Cache schnell löschen: Klicken Sie mit der rechten Maustaste auf die Schaltfläche "Aktualisieren" und wählen Sie "Vollständiges Neuladen";)
user65130
5
das funktioniert nicht immer. Ich habe meinen gesamten Cache gelöscht und immer noch umgeleitet. Nur mit Inkognito-Modus funktioniert es und Sie erhalten konsistentes Verhalten
Claudiu Creanga
2
Warum ist das nicht die Top-Lösung? die anderen sind im Vergleich schrecklich!
Brian
4
Funktioniert nicht mehr ... Wahrscheinlich im Jahr 2014 gearbeitet
Lord Loh.
@LordLoh. Ich habe es gerade mit der neuesten Version von Chrome versucht und es hat genau wie erwartet funktioniert. Wenn die devtools geschlossen sind, wird die Umleitung zwischengespeichert. Das erneute Laden der Seite mit geöffneten Tools leitet nicht weiter.
Mike Gossmann
20

Chrome speichert HTTP-Weiterleitungen zwischen und überprüft nicht mehr auf der Website, ob sich die Weiterleitung geändert hat. Dies kann frustierend sein, da die einfachste Möglichkeit zur Fehlerbehebung (Besuch der Website und Erzwingen einer harten Aktualisierung) nicht verwendet werden kann, da die Umleitung erfolgt, bevor Sie auf den Link zugreifen. Dies ist ein Problem, das nicht behoben werden kann .

Um dies zu umgehen , können Sie Ihre Browserdaten löschen, wie hier erläutert , oder Sie können die folgenden Schritte ausführen, um den Verlust Ihres Verlaufs zu vermeiden.

  1. Öffnen Sie die Chrome Developer Tools dev-tools

  2. Klicken Sie in Einstellungen die Einstellungen

  3. Überprüfen Sie Disable Cache (während DevTools geöffnet ist ) deaktivieren

  4. Besuchen Sie die gewünschte Site und das Cache-Problem wird behoben.

Zanon
quelle
2
Die Option "Cache deaktivieren" finden Sie auch auf der Registerkarte "Netzwerk". Dies ist dieselbe Option. Für das Debuggen von Redirects würde ich auch die Verwendung des "Protokoll beibehalten" vorschlagen.
Trendfischer
15

Gehen Sie zu chrome: // net-internals und öffnen Sie ganz rechts das Dropdown-Menü und wählen Sie "Cache löschen". Ab Version 48 war dies das einzige, was mir beim Löschen eines zwischengespeicherten 301 (permanente Umleitung) geholfen hat.

Update: Leider hat Google ab Version 71 (Dezember 2018) die Funktion für Interna-Netze entfernt.

McGuireV10
quelle
1
Funktioniert auf Chrome 56
spencer.sm
Funktioniert immer noch auf Chrome 67
SCO
Funktioniert nicht mit Chrome 71. Die Ereignisanzeige für interne Netze und die zugehörigen Funktionen wurden entfernt.
Userlond
8

.dev-Domains müssen unter Chrome 63+ HTTPS verwenden

Seit Chrome 63 (Dezember 2017) sind alle Domains, die auf .dev (und .foo) enden, gezwungen, HTTPS über einen vorinstallierten HTTP Strict Transport Security (HSTS) -Header zu verwenden.

Mehr dazu hier: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

Lucas Bustamante
quelle
Das war mit Sicherheit mein Schuldiger! Ich verbringe STUNDEN damit, herauszufinden, was zum Teufel los war. Danke, dass du das gepostet hast!
Jabari
Diese Antwort benötigt mehr Stimmen. Es könnte nicht das Problem sein, das der Fragesteller hatte, aber es wird für viele Entwickler sein, die diese Antwort in ihren Suchergebnissen finden.
bp.
Gott! Wer würde sich so eine geniale Idee einfallen lassen!
Pavel Niedoba
7

Um den Redirect-Cache für eine einzelne Seite in Chrome zu löschen, klicken Sie auf Quelltext anzeigen und führen Sie eine Hard-Aktualisierung durch (CTRL + SHIFT + R).

Dies funktioniert, da der Quellbrowser den 301-Weiterleitungen nicht automatisch folgt.

Matthew Blackford
quelle
4
Hat bei mir in Chrome 25 nicht funktioniert
swrobel 20.03.13
3
Dies funktioniert nicht, wenn die Umleitung für alle Seiten gilt. Ich habe ein www. -> nein www. Weiterleitung - Die Weiterleitung wird beim ersten Treffer ausgeführt, sodass ich nichts aktualisieren kann. Jedes Mal, wenn ich versuche, auf die Seite zu gehen, um sie zu aktualisieren, folgt sie der 301 - dann ist es zu spät!
Ian Grainger
1
@Ian Was ist, wenn Sie in die Adressleiste den Quelltext eingeben: www.example.com? Können Sie sich so aktualisieren, ohne dass es umgeleitet wird?
Matthew Blackford
1
@MatthewBlackford AFAICT das gleiche, ich bekomme eigentlich den Quellcode der umgeleiteten Seite. Ich bin mir nicht sicher, ob mein Test so gut war, obwohl TBH. Ich habe den Browserverlauf gelöscht, um dieses Problem zu beheben.
Ian Grainger
2
Dies funktioniert nur bei Javascript- und Metatag-Weiterleitungen. HTTP-Weiterleitungen werden weiterhin verfolgt
fregante
6

Wie hier beschrieben , könnte HSTS die Ursache sein

Um das zu umgehen, habe ich Folgendes getan.

Geben Sie in der Chrome-Adressleiste "chrome: // net-internals / # hsts" ein. Ganz unten auf einer Seite befindet sich das Textfeld QUERY domain. Vergewissern Sie sich, dass Ihre Site (z. B. localhost) dem Browser bekannt ist. Wenn dies der Fall ist, löschen Sie den localhost Domain über das Textfeld oben Ihre Site sollte jetzt mit normalem altem HTTP funktionieren

Tonino
quelle
1
Hey danke. Dies hilft wirklich bei plötzlichen https-Weiterleitungen im Cache.
Ruberoid
5

In Chrome oder Firefox können Sie die Umleitung aktualisieren, indem Sie "view-source: redirect.yoursite.com" eingeben und die Eingabetaste drücken. Aktualisieren Sie dann diese Seite. Nun sollte Chrome oder Firefox gezwungen werden, die Weiterleitung zu aktualisieren.

mrbofus
quelle
Dies ist die einzige Antwort, die für mich funktioniert hat.
JaredThirsk
4

Wenn Sie nur überprüfen möchten, ob die Weiterleitungen wie erwartet funktionieren, ist es wahrscheinlich einfacher, ein Befehlszeilentool wie wget oder ähnliches zu verwenden. Sie können die Antwortheader überprüfen und Weiterleitungen werden nicht zwischengespeichert.

Tom Wilson
quelle
3

Zu Entwicklungszwecken empfehle ich Ihnen, in Chrome die DevTools-Einstellungen zu öffnen und "Cache deaktivieren" zu aktivieren. Dann werden 30x Weiterleitungen nicht zwischengespeichert und Sie können .htaccess-Dateien usw. debuggen! Bildbeschreibung hier eingeben

lukyer
quelle
Das Seltsame ist, dass diese Option nicht hilft. Ich habe den Cache deaktiviert, aber auf der Registerkarte "Netzwerk" wird weiterhin angezeigt 301 Moved Permanently (from disk cache).
mgutt
Dies entspricht genau dem Klicken auf "Cache deaktivieren", während die Registerkarte "Netzwerk" geöffnet ist. Nein - löscht keine Weiterleitungen.
bshea
1
  1. Gehe zu chrome://settings/search#clear%20browsing%20data

  2. Klicken Sie auf "Browserdaten löschen".

  3. Aktivieren Sie "Zwischengespeicherte Bilder und Dateien" (und deaktivieren Sie den Rest, wenn Sie möchten)

  4. Klicken Sie auf "Browserdaten löschen".

Bildbeschreibung hier eingeben

Guaka
quelle
1

einfachste Methode, harte Aktualisierung. halten Ctrl+ Rein paar Sekunden. Dies löscht sowohl Umleitungen als auch statische Ressourcen.

Ryu_hayabusa
quelle
Warum würdest du es halten, anstatt einfach zu drücken Ctrl+R?
Gronostaj
@gronostaj War meine Antwort nicht schlicht und einfach? . Ohne Halten wäre es nur eine normale Auffrischung. Damit werden zwischengespeicherte Ressourcen oder Weiterleitungen nicht gelöscht.
Ryu_hayabusa
Halten ist wie mehrfaches Drücken. Öffnen Sie den Editor und halten Sie ihn Rgedrückt. Es werden mehrere Rs angezeigt. Dies ist genau das gleiche, aber mit Ctrl. Halten Sie Ctrl+ Rgedrückt, um genau zu sein, wie Sie es ein paar Sekunden lang ein Dutzend Mal pro Sekunde gedrückt halten. Das ist nicht klug, es missbraucht den eingebauten Aktualisierungsmechanismus und verlässt sich auf undokumentiertes Verhalten.
Gronostaj
@gronostaj Ja, es ist ein undokumentiertes Verhalten. Die akzeptierte Antwort funktioniert bei mir nicht. Deshalb habe ich es hier geteilt. Ich sehe keine andere Möglichkeit, die zwischengespeicherte Umleitung zu löschen. Wenn Sie andere Methoden kennen, können Sie diese gerne weitergeben.
Ryu_hayabusa
Versucht und hat nicht funktioniert (301 Weiterleitung auf die gesamte Domain).
mgutt
1

Wenn Sie nicht den gesamten Cache verlieren möchten und Ihre Umleitung immer noch im Cache steckt, können Sie versuchen, die View-Source: -Version der URL aufzurufen. Das hat den Redirect-Cache der gleichen URL für mich aktualisiert.

Ogier Schelvis
quelle
0

Ich habe alle Antworten auf dieser Seite ausprobiert, aber keine funktionierte, bis ich flushdns auf dem Windows-Befehlszeilenfenster ausführte.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

Zu Ihrer Information, ich hatte bereits Disable cachegeprüft, wie in dieser Antwort erwähnt.

Damodar Bashyal
quelle