wake-up-neo.net

Apache - Deaktivieren der Browser-Zwischenspeicherung beim Debuggen von htaccess

Ich versuche, eine .htaccess-Datei zu debuggen. FireFox speichert die Weiterleitungen immer im Cache, und ich kann sie nicht umgehen. Normalerweise würde ich Strg + F5 drücken, aber da es mich bereits auf eine andere Seite umgeleitet hat, werden nur die Seite aktualisiert, an die ich gesendet wurde, und nicht die von mir eingegebene URL. Gibt es eine Möglichkeit, eine Aktualisierung einer URL zu erzwingen?

Hier ist ein Beispiel:

  • Leiten Sie example.com/hi zu example.com/hello um, testen Sie in FireFox und es funktioniert
  • Entfernen Sie diese Zeile von .htaccess
  • Geben Sie example.com/hi in FireFox ein, es wird weiterhin zu example.com/hello umgeleitet
  • Geben Sie example.com/hi in Chrome ein, es wird nicht umgeleitet

Aus diesem Grund glaube ich, dass es sich um ein Problem mit dem Browser-Caching handelt, nicht um das Server-Caching.

Bearbeiten: Dies scheint FireFox-spezifisch zu sein. Eine schnelle Lösung besteht darin, stattdessen Chrome zu verwenden. Der Cache ist nach einer Stunde abgelaufen, was beim Debuggen viel zu lang ist.

20
hamboy

Wenn Sie RewriteRule verwenden, verwenden Sie einfach R anstelle von R = 301. Für andere Zwecke müssen Sie Ihren Browser-Cache löschen, wenn Sie eine Umleitung ändern. (Wenn Sie nicht wissen, wie Sie den Cache Ihres Browsers löschen, sollten Sie nach einer Anleitung suchen, um eine schnelle und einfache Antwort zu erhalten. Sie können auch gerne einen Kommentar abgeben und ich werde Ihnen helfen.)

Einfach gesagt, versuchen Sie, 301s möglichst zu vermeiden, bis Ihre Weiterleitungen normal funktionieren. Wenn Sie sie nicht vermeiden können, sollten Sie regelmäßig Ihren Browser-Cache leeren.

14
Dan Ambrisco

Das Löschen des Netzwerk-Cache von Firefox funktioniert für mich. Auch für 301 Weiterleitungen.

Einstellungen/Optionen> Erweitert> Netzwerk> Zwischengespeicherter Webinhalt.

Clear network cache in Firefox preferences

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

10
Lode

Öffnen Sie in Google Chrome eine neue Registerkarte im "Inkognito" -Modus mit:

CTRL-SHIFT-N

Sehr nützlich für das Debugging.

5
Dr Beco

So erzwingen Sie das Löschen von htaccess/redirect-Caches in Google Chrome :

  1. Gehen Sie zu Einstellungen> Erweitert> Datenschutz> Browserdaten löschen 
  2. Wählen Sie "Zwischengespeicherte Bilder und Dateien" aus.
  3. Klicken Sie auf Browserdaten löschen

Ihre Seite sollte jetzt die neuen htaccess-Einstellungen laden.

4
Andrew

Ich denke, es lohnt sich hier abzuwägen, nur falls meine Erfahrung jemandem hilft. Ich wechsle regelmäßig zwischen einer Entwicklungs- und Produktionsabteilung auf meiner lokalen Maschine. Der Entwicklungszweig ist meine lokale Umgebung und der Produktionszweig ist für meinen Remote-Server. Der einzige Unterschied zwischen den beiden Umgebungen ist die .htaccess-Datei. Mein Remote-Server benötigt eine Umschreibungsregel, falls vor der URL nicht "www" eingegeben wird:

# If www is missing from the beginning of the URL
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]

Diese Umschreibregel funktioniert jedoch aufgrund der URL-Struktur nicht für meine lokale Umgebung. In meiner lokalen Version von .htaccess kommentiere ich die Regeln zum Umschreiben aus.

Mir ist aufgefallen, dass Chrome anscheinend nicht zu jedem lokalen Server wechselt, um die neueste .htaccess-Datei abzurufen. Es ist offensichtlich eine Zwischenspeicherung der Umschreibung, denn wenn ich von meinem Produktionszweig zu meinem Entwicklungszweig wechsle, bekomme ich etwas, das so aussieht:

www.www-local.myurl.local

Wenn ich Safari verwende, bekomme ich die richtige URL:

www-local.myurl.local

Um dieses Chrome-Problem zu beheben, bin ich zu Developer Tools> Settings> General> gegangen und habe "Cache deaktivieren (während DevTools geöffnet ist)" aktiviert.

Mit dieser Option muss ich nur die Dev Tools öffnen und neu laden, um den aktuellen .htaccess zu erhalten.

2

Öffnen Sie in Firefox Developer Toolbar, indem Sie Optionsbefehl I drücken. Klicken Sie dann auf Einstellungen (es ist ein kleines Zahnrad-Symbol) und setzen Sie unter Erweiterte Einstellungen ein Häkchen neben HTTP-Cache deaktivieren (bei geöffneter Toolbox)}. Das hat den Trick für mich gemacht.

2
Gdev

Öffnen Sie in Google Chrome die Developer Toolbar. Klicken Sie dann auf Einstellungen (es ist ein 3-Punkte-Symbol) und aktivieren Sie unter Netzwerk die Option "Cache deaktivieren (während DevTools geöffnet ist)".

0
Cong Nguyen

Nachdem ich unzählige Male versucht hatte, meinen Cache zu aktualisieren, entschied ich mich, die Cookies für meine Website zu löschen. Ich weiß nicht warum oder wie, aber das löschte das für mich. Vielleicht ist es etwas spezifisch für Magento, aber es könnte allgemeiner sein.

0

In Chrome können Sie den Browser-Cache im Bereich Developer Tools deaktivieren

Command+Option+C (Mac) or Control+Shift+C (Windows, Linux, Chrome OS).

In der Registerkarte Network finden Sie Disable cache Kontrollkästchen.
Dies funktioniert nur, wenn das Developer Tools-Bedienfeld geöffnet ist. enter image description here

0
Amir Khorsandi