Apache und das Zeichensatz Encoding

Alles, was den Apache betrifft, kann hier besprochen werden.

Apache und das Zeichensatz Encoding

Postby Crod » 26. July 2007 15:19

Guten Tag!

Ich hoffe, dass mich hier jemand weiterhelfen kann.
Und zwar haben wir einen Webauftritt der uns in uft-8 vorliegt.
Da es sich dabei um eine vom Tool HTTrack erzeugte Kopie des Content Management Systems Plone handelt, ist leider auch nur uft-8 möglich.

Diese würden wir jetzt gerne auf unserem Tomcat mit vorgeschalteten Apache laufen lassen. Auf diesem befinden sich bis jetzt nur ISO-8859-1 Seiten.

Wenn wir die Seite nun aufrufen werden die Umlaute falsch dargestellt, obwohl wir im der HTML mit hilfe des meta tags den zeichensatz auf utf-8 setzen. Nun habe ich in diversen Foren gelesen, dass Apache das Problem verursacht, da er dennoch in den html header ISO-8859-1 einträgt und die Seite so weiter gibt.

Das scheint es auch zu denn, denn die Seite kommt wirklich mit einem falschen Header beim Nutzer an.

Frage ist nun, wie man dem Apache beibringen kann, dass er uft-8 in den Header schreibt? Zu bedenken ist, dass man nicht einfach uft-8 als standard setzen kann, da alle anderen seiten iso-8859-1 sind.

versteht mich jemand und kann mir helfen? ;)

danke!!
Crod
 
Posts: 4
Joined: 26. July 2007 15:12

Postby KingCrunch » 26. July 2007 16:07

HTML-head ist nicht das gleiche wie der HTTP-header ;) Insofern kann dir die PHP-Funktion header womöglich weiterhelfen.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Crod » 27. July 2007 10:34

Ja, sorry.
Ich war sehr in Eile.
Also im HTML Head ist per Metatag UTF-8 definiert.
Der Apache sendet durch die Standardeinstellung in der conf-Datei aber ISO-8859-1 im HTTP Header mit. Diese Einstellung muss, wie ich nun erfahren habe, auf unserem Server auch drin bleiben.

Überschreibt diese Einstellung den Metatag immer oder nur, wenn dieser nicht klar definiert ist?
Crod
 
Posts: 4
Joined: 26. July 2007 15:12

Postby KingCrunch » 27. July 2007 11:57

"utf-8" find ich allerdings ziemlich klar definiert ^^

Nene, es is vielmehr so, dass der Browser ein stückweit entscheidet, welchen er verwendet. Meist nimmt er den, der "wichtiger" erscheint (vom Webserver direkt wirkt er seriöser, als aus irgendeinem Script ;)) bzw den er als erstes empfängt (HTTP-header immer vor Content). Darauf würde ich mich allerdings nicht verlassen, mir sind schon Fälle untergekommen, wo der Browser sich bei mehreren Requests auf ein und derselben Seite plötzlich umentschieden hat. Is natürlich auch abhängig vom Browser.

Wie gesagt: Schau dir die PHP-Funktion "header" an. Damit kannste den HTTP-Header überschreiben und die Standard-Einstellungen vom Apache bleiben erhalten.


Edit:
OK, lese gerade: Tomcat :D Nagut, irgendsoeine Funktion dürfte der aber auch bereit stellen. Ansonsten sollte es im Apachen auch möglich sein für einzelne Domains bzw Verzeichnisse den Default-Charset zu ändern, die entsprechende globale Einstellung dazu aber zu belassen. Konsultier am Besten mal das Manual zum Apachen.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Crod » 27. July 2007 12:37

Danke für die Antwort.
Ich versuche die Situation nochmals genau zu schildern.

In unserer Firma haben wir intern das Content Management System Plone laufen. Dieses läuft standardmäßig auf uft-8. Umstellen ist mir noch nicht gelungen, irgendwo gibt es immer wieder Fehler.

Von diesem CMS wird mit Hilfe des Tools HTTrack eine statische Kopie, dass heißt reine HTML Seiten erzeugt. Diese sind dann logischer Weise in uft-8 kodiert.

Nun kommt das eigentlich Problem.
Nun kommen die HTML Seiten auf den Webserver.
Dabei handelt es sich um einem Tomcat Server dem widerum ein Apache Server vorgeschaltet ist, der sich um die HTML Datein kümmert. Und in dem Apache ist als DefaultCharset ISO-8859-1 gesetzt. Diese Einstellung muss auch so bleiben. Die Kopie des CMS ist aber leider utf-8, was ja nun leider zu Problemen führt, da der Browser auf Grund des HTTP Headers vom Apache ISO-8859-1 einstellt.

Das nächste Problem ist, dass PHP wegfällt. Also es mit PHP zu lösen ist auch nicht möglich.


Gibt es irgendeine Möglichkeit den DefaultCharset vom Apache im HTTP Header zu ändern, ausser PHP? Ich hab so langsam das Gefühl, dass meine einige Möglichkeit darin besteht, dass CMS irgendwie von uft-8 auf ISO-8859-1 umzustellen.
Crod
 
Posts: 4
Joined: 26. July 2007 15:12

Postby glitzi85 » 27. July 2007 13:14

Hallo,

versuch mal das in die VirtualHost-Direktive des Apachen reinzuschreiben:

Code: Select all
AddDefaultCharset utf-8


Dann sollte er für diesen Host UTF-8 ausgeben.

Wieso verwendet ihr eigentlich Tomcat für statische Seiten?

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Postby KingCrunch » 27. July 2007 13:56

Der Befehl wars :D

Wieso verwendet ihr eigentlich Tomcat für statische Seiten?
Einwurf: Ich benutze auch PHP für statische Seiten ;)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby glitzi85 » 28. July 2007 11:07

Noch so ein Korinthenkaker :roll:

Neue Formulierung: Wozu verwendet ihr Tomcat?

Schön allgemein ;-)

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Postby Crod » 29. July 2007 14:10

Hallo, danke für die Antwort.
Wusste nicht, dass sich die Charsets auch für einen einzelnen Virtual Host einrichten lassen, dachte bisher, dass diese Einstellung nur für den ganzen Server machbar ist.

Wir nutzen den Tomcat, da alle sonstigen Webauftritte mit Java realisiert werden. Nur bei diese einen handelt es sich um eine rein statische HTML Seite, naja wobei, es ist noch ein JSP Login vorgeschaltet. Der Apache ist also nur auf Grund der wenigen HTML Seiten, die ab und zu mal vorkommen, davor geschaltet, ansonsten sind es alles JSPs.

Welche Frage ich mir nun stelle.
Der eigentlich Server ist ja der Tomcat, der Apache ist ja nur für die HTML Inhalte davor geschaltet. Wo werden die Virtual Hosts denn dann definiert, im Apache oder Tomcat? Oder in beiden?
Crod
 
Posts: 4
Joined: 26. July 2007 15:12


Return to Apache

Who is online

Users browsing this forum: No registered users and 134 guests