Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Netzwerke>Problem mit .htaccess

Problem mit .htaccess

dom_beta21.05.1323:03
Hallo,

ich habe ein Problem mit meiner .htaccess Datei.

ExpiresActive On
ExpiresDefault "modification"
Options -Indexes
ErrorDocument 401 /401.htm
ErrorDocument 403 /403.htm
ErrorDocument 404 /404.htm

Bei der Überprüfung der zurückgegebenen HTTP-Codes gibt mir Safari für HTML-Dateien immer den Code 200 und für CSS-Datein 304 an.
Interessant ist aber, daß keine der Dateien verändert wurden.

Wie genau müsste ich die .htaccess Datei ändern, damit man dies auch für die HTML- und andere Dateien bei Nichtmodifizierung ein 304 Code bekommt?

Danke.
„...“
0

Kommentare

MacRudi21.05.1323:35
Hallo dom_beta,

was ist denn eigentlich der Sinn dahinter?

Ich habe einen Safari-Bug gemeldet, der schon seit 4 Jahren seiner endgültigen Bearbeitung entgegensieht. Und vielleicht hängt das zusammen. Hier hatten nämlich Firefox, IE und Safari ein stark unterschiedliches Verhalten an den Tag gelegt.
0
dom_beta21.05.1323:40
Was der Sinn dahinter ist?

Mmmh, Traffic einsparen.

Ich weiß ob es ein Safari Bug ist, aber bei HTML-Dateien meldet Safari immer den Code 200 und bei CSS-Dateien den Code 304 (Not Modified - Nicht modifiziert - was ja auch stimmt).

Drum gehe ich davon aus, daß die .htaccess vielleicht falsch konfiguriert ist.
Statuscode 304
Die angeforderten Daten haben sich seit dem angegebenen Zeitpunkt nicht geändert und werden deshalb nicht gesendet. Dieser Status-Code ist neben dem Code 200 einer der häufigsten in der Praxis. Er tritt auf, wenn ein moderner Webbrowser, der die Daten noch im Cache hat, eine Anfrage an den Server sendet und dabei den Ladezeitpunkt der Daten in seinem Cache übermittelt. Stellt der Server dann fest, dass sich die Daten seit dem angegebenen Zeitpunkt nicht geändert haben, braucht er sie nicht noch einmal zu übermitteln, sondern sendet nur diesen Statuscode und keine Daten. Der Browser holt daraufhin seine alte Version aus dem Cache.
„...“
0
dom_beta22.05.1300:09
Es scheint wohl doch um ein Safari-Bug zu handeln, denn Firebug meldet beim erneuten Aufrufen den HTTP-Code 304.
„...“
0
dom_beta22.05.1300:16
tatsächlich - Safari Bug.

Google Chrome und Firefox melden 304, nur Safari nicht (Version 6.0.4 und 5.1.9)
„...“
0
breaker
breaker22.05.1300:22
Was der Sinn dahinter ist?

Mmmh, Traffic einsparen.

Bei den paar KB die eine CSS/HTML Datei hat in Zeiten, wo selbst die günstigen Webhosting-Pakete oft Unlimited Traffic beinhalten ist das doch nicht etwa dein ernst, oder?
0
dom_beta22.05.1300:30
nicht nur das, es soll dem Google Bot die Arbeit erleichtern und die Seite soll bei den Besuchern auch zügiger aufgebaut werden.
„...“
0
MacRudi22.05.1308:28
Dass Dateien, die gegenüber der gecachten Version nicht neuer sind, nicht geladen werden vom Server, sondern der Browser sie aus dem Cache nimmt, ist doch ohne diese .htaccess-Datei schon so. Deshalb die Frage, was soll diese .htaccess-Datei machen?

Die letzten drei Zeilen geben an, welche Datei im Fehlerfall 401 bis 403 angezeigt werden soll. Nämlich nicht die Standard-Datei vom Server, sondern eine eigene.

Die dritte Zeile stellt aus, dass bei Aufrufen eines Ordners dessen Dateien angezeigt werden.

Die Bedeutung der ersten beiden Zeilen weiß ich nicht.

Traffic sparen ist schon sinnvoll, weil alles, was der Server nicht senden muss, entlastet ihn.
Und der lokale Cache ist einfach schneller. Dass das nicht sehr viel bei dieser Dateigröße ausmacht ist klar, aber wenn eigene Anwendungen immer größer werden, wie bei mir, dann versucht man den Server zu schonen. Bei Massenhostern, wo ein paar Hundert Domains auf einem Rechner liegen, muss man eben sehen, dass man mit dem einen Rechner eine gute Performance hat.
0
dom_beta22.05.1308:50
Hallo,

wie bereits gesagt, der Server unterstützt If-Modified-Since.

Außerdem gibt es Richtlinien von Google:
Richtlinien für Webmaster, Google
Technische Richtlinien

Stellen Sie sicher, dass Ihr Webserver den HTTP-Header "If-Modified-Since" unterstützt. Über diese Funktion kann Ihr Webserver Google mitteilen, ob der Inhalt seit dem letzten Crawling Ihrer Website geändert wurde. Mit dieser Funktion können Sie Bandbreite und Overhead sparen.

„...“
0
MacRudi22.05.1309:32
Es gibt Seiten im Internet, die Dir die vom Webserver gesendeten Header anzeigen. Dann kannst Du sehen, ob "If-Modified-Since" dabei ist.

Die ersten beiden Zeilen Deiner .htaccess kannst Du eventuell auch weglassen, wenn bei Deinem Provider das eh der Default ist. Du kannst ja mal schauen, ob es für die gesendeten Header einen Unterschied macht und hier wieder berichten.

Frohes Knobeln
Rüdiger
0
dom_beta22.05.1309:33
Habe ich doch gerade geschrieben, daß es dabei ist.
„...“
0
MacRudi22.05.1309:39
Eine solche Seite ist zum Beispiel:
http://www.webconfs.com/http-header-check.php

Mein Server liefert folgende Werte:

HTTP/1.1 200 OK =>
Date => Wed, 22 May 2013 07:37:31 GMT
Server => Apache
Last-Modified => Mon, 04 Mar 2013 15:34:11 GMT
ETag => "f97cdfa4-54d-4d71b16a762c0"
Accept-Ranges => bytes
Content-Length => 1357
Connection => close
Content-Type => text/html
0
MacRudi22.05.1309:42
Du hast aber nicht geschrieben, ob Deine beiden ersten Zeilen der .htaccess dafür nötig sind und was die überhaupt machen sollen.
0
MacRudi22.05.1309:46
Last-Modified wird normalerweise benutzt vom Browser, um zu entscheiden: vom Server neu laden oder aus dem lokalen Browser-Cache nehmen.
0
dom_beta22.05.1310:28
*seufz*

If Modified Since Tool

„...“
0
MacRudi22.05.1313:15
Bei meinen Domains bei 1&1 wird defaultmäßig "If-Modified-Since" nicht unterstützt.

Soll Deine .htaccess dies bewirken?
0
beanchen22.05.1313:42
Ihr redet aneinander vorbei.

dom_beta
MacRudi will wissen, ob deine Einträge überhaupt nötig sind oder ob sie nicht den Fehler verursachen, da dein Server von Haus aus "If Modified Since" unterstützt.
„Unterwegs in Analogistan: https://www.zdf.de/comedy/heute-show/heute-show-spezial-vom-19-januar-2024-100.html“
0
MacRudi22.05.1313:52
Danke

Ist ja auch die Frage, worum es geht.

a. dom_beta hat sein Problem für sich gelöst.
oder
b. die anderen haben eine Chance gehabt, das Problem nachvollziehen zu können.
0
MacRudi22.05.1316:15
Bei Unterstützung (wer auch immer was unterstützt, das ist ja noch zu eruieren) meldet der Server beim ersten Aufruf normal den Status 200, beim erneuten Aufruf aber 304.

Hier die Header beim ersten und zweiten Aufruf:

1.
Server Response HTTP/1.1 200 OK
HTTP/1.1 200 OK
Date: Wed, 22 May 2013 13:51:36 GMT
Server: Apache/2.2.24 (CentOS)
Last-Modified: Wed, 22 May 2013 00:57:25 GMT
...

2.
Server Response HTTP/1.1 304 Not Modified
HTTP/1.1 304 Not Modified
Date: Wed, 22 May 2013 13:51:36 GMT
Server: Apache/2.2.24 (CentOS)
...
0
dom_beta22.05.1323:07
beanchen
MacRudi will wissen, ob deine Einträge überhaupt nötig sind oder ob sie nicht den Fehler verursachen, da dein Server von Haus aus "If Modified Since" unterstützt.

ja, sind sie.

Die ganzen Sachen müssen in der .hatccess Datei eingetragen werden.

vgl.
„...“
0
MacRudi22.05.1323:38
Weißt Du dom_beta, dafür, dass ich Dir den Tip mit dem Safari-Bug genannt habe, könntest Du mir meine Fragen auch gern mal beantworten. Schließlich willst Du was wissen. Aber anscheinend hast Du es nicht nötig. Und drum werde ich Dir auch nicht mehr helfen.
0
dom_beta22.05.1323:45
Wie ich oben bereits schrieb:

Es gibt einen Anzeigefehler in Safari, der fälschlicherweise Status 200 anzeigt, obwohl der Status 304 sein müsste.

Mit dem Server und seiner Konfiguration ist alles in Ordnung. Das Problem hat sich gelöst.
„...“
0
MacRudi23.05.1301:04
Es ist kein Anzeigefehler, sondern ein Kommunikationsfehler, aber ...
0
dom_beta23.05.1301:45
nö, Chrome und Firefox melden beim erneuten Aufruf Status 304. Safari meldet 200. Das ist aber falsch mit der 200, richtig wäre 304.
„...“
0
beanchen23.05.1307:57
dom_beta
vgl.
Äh, jetzt stehe ich auf dem Schlauch. Du hast zwar für dich beschlossen, das Problem sei gelöst und du scheinst wenig Lust zu haben, das hier weiter zu diskutieren, ich versuche es trotzdem mal:
Im verlinkten Thread taucht der Fehler auf, dass trotz geänderter Dateien die alten angezeigt werden. An einem fälschlicherweise gesendeten oder interpretierten 200 kann das aber nicht liegen. Wenn dann doch eher an 304. In diesem Thread liegt das Problem aber genau anders herum! Und deswegen finde ich die Frage, ob deine Modifikationen diesen Fehler nicht zumindest begünstigen durchaus berechtigt.
Übrigens, die Problematik aus dem ersten Thread hatte ich auch schon öfters. Es lag aber nie am Server, an der Website oder an meinem Rechner, es lag immer an Komponenten dazwischen.
„Unterwegs in Analogistan: https://www.zdf.de/comedy/heute-show/heute-show-spezial-vom-19-januar-2024-100.html“
0
MacRudi23.05.1308:36
Meiner Erinnerung nach wertet Safari die Information Last modified nicht aus. Dementsprechend kann Safari garnicht entscheiden, ob die Datei auf dem Server jetzt neu ist oder nicht.

Früher war Safari klasse, weil jedesmal neu geladen wurde, wenn man auf den Aktualisierenknopf geklickt hat. Als Webseitenentwickler war das sehr angenehm, weil man immer den aktuellen Stand der Seite sehen konnte, ohne Aktualisieren klicken zu müssen. Inzwischen hat sich das Verhalten von Safari geändert. 1. muss man Aktualisieren, um den augenblicklichen Stand sehen zu können und 2. wird beim Aktualisieren nur noch die aufgerufene Seite aktualisiert. In iframes oder Frames angezeigte Seiten werden nicht aktualisiert. Workaround: diese Seiten im neuen Tab öffnen und dort aktualisieren. Für einen Entwickler ein Ausweg, für einen User natürlich nicht zumutbar. Der denkt, er sieht bei jedem Aufruf den aktuellen Stand.

Das ist erstmal der normal verständliche Stand. Die Safari-Entwickler haben da eine Entscheidung zu treffen, sich an das Verhalten anderer Browser (IE und FF) anzupassen oder noch einen anderen Weg zu gehen. Der Standard war nämlich geringfügig abweichend. Und drum können sie sich wohl nicht durchringen an der Stelle. Müsste mal in den Bug schauen, wie der momentane Stand ist.
0
MacRudi23.05.1309:41
Korrektur: Man brauchte früher nicht auf den Aktualisierenknopf klicken, weil Safari immer neu geladen hat.
0
dom_beta23.05.1310:18
die HTTP-Statusmeldungen kannst du über Entwickler > Webinfofenster > Timelines > Netzwerkanfragen einblenden lassen.
„...“
0
Stranger23.05.1310:35
Also bei mir funktionieren die Header ohne Probleme, erster Aufruf 200, zweiter Aufruf 304.
Ich habe es mit dem aktuellen Safari 6.0.4 und der Webkit Nightly Build Version getestet, also tippe ich eher darauf, dass es an deinem Server liegen könnte.
0
fluppy
fluppy23.05.1310:47
Was muss in einer .htaccess stehen, wenn nur auf eine Datei weitergeleitet werden soll, wenn Status des Aufrufs 200 ist?

Funktioniert 304 auch bei deaktivieren browsercache?
0
dom_beta23.05.1310:52
Die HTTP-Statuscodes kann man hier lesen:

„...“
0
dom_beta23.05.1310:53
Stranger
Also bei mir funktionieren die Header ohne Probleme, erster Aufruf 200, zweiter Aufruf 304.
Ich habe es mit dem aktuellen Safari 6.0.4 und der Webkit Nightly Build Version getestet

Redest du vom "If Modified Since Tool"?
„...“
0
fluppy
fluppy23.05.1310:54
dom_beta
Die HTTP-Statuscodes kann man hier lesen:

Soll das eine Antwort auf meine frage sein?
0
dom_beta23.05.1316:28
bspw. hier

„...“
0
dom_beta26.05.1314:24
Übrigens, mit Google's PageSpeed Tool kann man die Geschwindigkeit der Webseite testen:



"Meine" Seite erreicht dabei 97 von 100 Punkten.

MTN nur 81 Punkte.
„...“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.