Apache URL Encoding einstellen, wo und wie?

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

Apache URL Encoding einstellen, wo und wie?

Postby CongoFX » 21. August 2009 13:31

Hallo Leute,

wo stelle ich in welcher Apache Konfigurationsdatei ein, das URLs über Encoding abrufbar sind?

Ein Beispiel:

Momentan ist es so, dass die URL so akzeptiert wird: "http://server/münchen.html" .
Es soll aber so sein, dass die URL im "encodierten"-Stil abrufbar ist, also: "http://server/m%FCnchen.html" .

Aktuell bekomme ich mit "encodierten" URLs einen 404 zurück, klar weil wahrscheinlich diese Option irgendwo eingestellt werden muß, nur wo?

Wer kann mir helfen und vielen Dank über ein Feedback.
CongoFX
 
Posts: 9
Joined: 11. August 2008 11:18

Re: Apache URL Encoding einstellen, wo und wie?

Postby Wiedmann » 21. August 2009 13:38

wo stelle ich in welcher Apache Konfigurationsdatei ein, das URLs über Encoding abrufbar sind?

Im Apache nirgends. URIs müssen immer passend zu Dateisystem (Locale) deines Servers kodiert sein.

Momentan ist es so, dass die URL so akzeptiert wird: "http://server/münchen.html" .
Es soll aber so sein, dass die URL im "encodierten"-Stil abrufbar ist, also: "http://server/m%FCnchen.html" .

Aktuell bekomme ich mit "encodierten" URLs einen 404 zurück.

Dann wird im Dateisystem deines Serves der Dateiname wohl nicht in iso-8859-1 kodiert abgespeichert.

Wenn das schätzungsweise UTF-8 sein sollte, lautet dann der Link zu deiner Datei also "http://server/m%C3%BCnchen.html".
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache URL Encoding einstellen, wo und wie?

Postby CongoFX » 21. August 2009 14:04

Hi Wiedmann,

vielen Dank für das schnelle Feedback.

Im Apache nirgends. URIs müssen immer passend zu Dateisystem (Locale) deines Servers kodiert sein.

Tatsächlich? Ich dachte da eher mehr an sowas wie die Einstellung in einem config file des Apache.

Dann wird im Dateisystem deines Serves der Dateiname wohl nicht in iso-8859-1 kodiert abgespeichert.

Wie kann ich das umstellen, ohne das System neu aufzusetzen?

Wenn das schätzungsweise UTF-8 sein sollte, lautet dann der Link zu deiner Datei also "http://server/m%C3%BCnchen.html".

Nein, die Seite ist direkt über "http://server/münchen.html" erreibar. Encoded URLs wie mit "m%C3%BCnchen.html" oder "m%FCnchen.html" liefern "404".
CongoFX
 
Posts: 9
Joined: 11. August 2008 11:18

Re: Apache URL Encoding einstellen, wo und wie?

Postby Wiedmann » 21. August 2009 14:19

Nein, die Seite ist direkt über "http://server/münchen.html" erreibar.

Das kann schonmal nicht sein, da ein "ü" in einer URI ja nicht zulässig ist...

Encoded URLs wie mit "m%C3%BCnchen.html" oder "m%FCnchen.html" liefern "404".

... dein Browser kodiert das also eh (im Hintergrund) schon in eine der beiden um. UNd diese funktioniert ja dann offensichtlich.
(welche der Browser automatisch nimmt, ist je nach Browser unterschiedlich)

Wie kann ich das umstellen, ohne das System neu aufzusetzen?

Das wird wohl auf's System ankommen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache URL Encoding einstellen, wo und wie?

Postby CongoFX » 21. August 2009 14:36

Das kann schonmal nicht sein, da ein "ü" in einer URI ja nicht zulässig ist...

...doch ist aber so, wenn ich über den Browser "http://server/münchen.html" eintippe wird die Seite angezeigt.

... dein Browser kodiert das also eh (im Hintergrund) schon in eine der beiden um. UNd diese funktioniert ja dann offensichtlich.
(welche der Browser automatisch nimmt, ist je nach Browser unterschiedlich)

...also ich kenne das so, das die URL so wie sie eingetippt wird an den Webserver gesendet wird und dieser die URL interpretiert oder konvertiert, aber ich bin mir nicht sicher.

Das wird wohl auf's System ankommen.

/etc/issue: "Ubuntu 9.04 \n \l", deutsche Version.
CongoFX
 
Posts: 9
Joined: 11. August 2008 11:18

Re: Apache URL Encoding einstellen, wo und wie?

Postby Wiedmann » 21. August 2009 14:47

...doch ist aber so, wenn ich über den Browser "http://server/münchen.html" eintippe wird die Seite angezeigt.

Dann schau doch einfach in's access_log deines Apachen, welche URI tatsächlich aufgerufen wird.

(wie gesagt, ein "ü" wird unter Garantie nicht benutzt, weil das entsprende Oktett (egal welche Kodierung) in einer URI nicht zulässig ist.)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache URL Encoding einstellen, wo und wie?

Postby CongoFX » 21. August 2009 15:17

Im Log steht "File does not exist: /var/www/m\xfcnchen.html ..."

Okay, anders gefragt, wie bekomme ich es hin dass die Seite über "http://server/m%FCnchen.html" abrufbar ist und nicht als "m\xfcnchen.html" vom Server interpretiert wird, wenn "http://server/m%FCnchen.html" im Browser eingetippt wird? :?
Last edited by CongoFX on 21. August 2009 15:19, edited 1 time in total.
CongoFX
 
Posts: 9
Joined: 11. August 2008 11:18

Re: Apache URL Encoding einstellen, wo und wie?

Postby Wiedmann » 21. August 2009 15:18

Im Log steht "File does not exist: /var/www/m\xfcnchen.html ..."

Das ist aber das error_log, und nicht das access_log mit dem Aufruf der funktioniert.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache URL Encoding einstellen, wo und wie?

Postby CongoFX » 21. August 2009 15:36

Hallo Wiedmann,

hmm, tatsache es ist "%C3%BC", also "m%C3%BCnchen.html", der Fehler war ( :arrow: und jetzt mache ich mich zum Affen), ich hatte ständig das "C" vergessen, also nur "m%C3%Bnchen.html" eingetippt. :oops:

Aber jetzt zurück zu meiner ersten Frage, es gibt zwei Varianten für URL Encodierung, utf-8 (benutzt mein webserver, wg. "%C3%BC" in URL) und ISO-8859-1 ("%FC" für´s "ü"). Wie stelle ich den Webserver auf ISO-8859-1 um, damit er "http://server/m%FCnchen.html" akzeptiert?
CongoFX
 
Posts: 9
Joined: 11. August 2008 11:18

Re: Apache URL Encoding einstellen, wo und wie?

Postby Wiedmann » 21. August 2009 15:47

es gibt zwei Varianten für URL Encodierung, utf-8 (benutzt mein webserver, wg. "%C3%BC" in URL) und ISO-8859-1 ("%FC" für´s "ü").

Nein. Es gibt nur eine Art. (Eben pro Octett das "%" + der Zeichencode).

Die Frage ist halt, in welchem Zeichensatz die Dateien auf der Platte liegen. Und je nach Zeichensatz hat ein Zeichen diese oder jene Kodierung, oder kann gar nicht angesprochen werden, wenn es das Zeichen in diesem Zeichensatz nicht gibt.

tatsache es ist "%C3%BC",

Die gebräuchlichten Zeichensätze sind eben die zwei iso-8859-1 und utf-8. Gerade utf-8, was bei dir benutzt wird, hat natürlich den Vorteil, dass man alle Zeichen jeder Sprache benutzen kann. Womit sich die Frage stellt:

Wie stelle ich den Webserver auf ISO-8859-1 um, damit er "http://server/m%FCnchen.html" akzeptiert?

Wieso willst du utf-8 nicht benutzen?

Ansonsten musst du halt dafür sorgen, dass der Server mit der iso-8859-1 Locale gestartet wird. (kann dir aber nicht sagen wie man das jetzt bei Linux jetzt genau macht)
(Und dann wohl noch deine Dateien entsprechend umbennen...)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache URL Encoding einstellen, wo und wie?

Postby CongoFX » 21. August 2009 15:55

Danke für das Feedback und die freundliche Hilfe :wink:

Wieso willst du utf-8 nicht benutzen?

Wir haben noch andere Server, auf denen ist ISO-8859-1 Standard, daher muß ich das Gerät umstellen, leider.

Vielleicht hat noch jemand eine Lösung, wie das umgestellt werden kann, also UFT-8 auf ISO-8859-1?
CongoFX
 
Posts: 9
Joined: 11. August 2008 11:18

Re: Apache URL Encoding einstellen, wo und wie?

Postby Pitze » 21. August 2009 22:54

Hej,
siehe mal in der httpd-languages.conf nach unter AddCharset sind so einige iso´s eingetragen. Das heist der Server kann so auf die meisten Zeichensätze reagieren die rein kommen, dann kannst du den Server zwingen lediglich den default typ auszuliefern durch AddDefaultCharset On oder Off sollte eigendlich iso-8859-1 immer Aktiv sein.
Zumindest versuchen kannst du es mal kann ja nicht viel schiefgehen.
Der grösste Vertrauensbruch ist der Blitzableiter auf der Kirchturmspitze
User avatar
Pitze
 
Posts: 210
Joined: 20. November 2003 21:38
Location: Huskvarna-Schweden
Operating System: Windows Vista


Return to Apache

Who is online

Users browsing this forum: No registered users and 243 guests