Moin!
Ich hoffe, ihr hattet ein schönes Weihnachtsfest :-) Pünktlich zu Heiligabend kam dann auch der Herbst nach Nordhessen ;-)
Kommen wir nun zum eigentlichen Problem (auch wenn die Klimaerwärmung weit gravierender ist):
Ich habe auf einem Server mit folgender Apache-Option Content Negotiation eingeschaltet:
Option +MultiViews
Hintergrund ist, dass ich gerne RSS-Feeds auch komprimiert an Feedreader ausliefern möchte. Haben wir nun einen Feed rss.xml mit der komprimierten Version rss.xml.gz, so sollte nach meinem Verständnis der Server bei der Anforderung von rss.xml nach Bedarf den komprimierten Feed ausliefern – also in Abhängigkeit vom Accept-Encoding HTTP-Header des Useragents.
Tatsächlich ist es allerdings so, dass beim Zugriff auf die rss.xml _nie_ der gzipte Feed ausgeliefert wird, sondern immer die „rohe XML-Datei“ (ohne Kompression):
$ curl --compressed -I http://freihoch2.nerdbox.de/personal/rss.xml
HTTP/1.1 200 OK
Date: Wed, 27 Dec 2006 11:59:37 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-18 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_perl/1.999.21 Perl/v5.8.4
Last-Modified: Fri, 22 Dec 2006 21:26:36 GMT
ETag: "8006f08-672-1a457b00"
Accept-Ranges: bytes
Content-Length: 1650
Content-Type: application/xml
Content-Negotiation funktioniert hingegen für die URI ohne irgendeine Dateiendung (nur rss) wunderbar:
$ curl --compressed -I http://freihoch2.nerdbox.de/personal/rss
HTTP/1.1 200 OK
Date: Wed, 27 Dec 2006 13:52:22 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-18 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_perl/1.999.21 Perl/v5.8.4
Content-Location: rss.xml.gz
Vary: negotiate,accept-encoding
TCN: choice
Last-Modified: Fri, 22 Dec 2006 21:26:36 GMT
ETag: "8007005-2d5-1a457b00;1a457b00"
Accept-Ranges: bytes
Content-Length: 725
Content-Type: application/xml
Content-Encoding: gzip
Die Seite läuft, wie man oben sehen kann, auf einem 2.0er Apache und es ist nicht ausgeschlossen, dass irgendwo in der Konfiguration eine Kleinigkeit fehlt, damit (auch) die URI …rss.xml „negotiated“ wird, allerdings weiß ich nicht, an welcher Stelle. Wer kann mir weiterhelfen?
Viele Grüße,
Robert