Toon posts:

Apache + IE6 = 404 bij files met accenten e.d.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb wat zitten zoeken maar vind niet meteen een antwoord / goede keywords.

Bij enkele sites die ik host worden files met filenames met speciale tekens (in dit geval jpg images genre: é.jpg ) niet getoond in IE (rood kruisje) terwijl dit in FireFox wel het geval is. Wanneer ik de URL's van de images rechtsreeks in IE ingeef krijg ik onze HTTP404 page. Firefox kan er wel mee overweg maar verandert alle tekens met accenten bvb é in %E9 in de URL. Wanneer ik de URL die Firefox maakt in IE ingeef werkt het daar ook. Dus ofwel weet IE niet hoe die die URL juist moet encoden ofwel gebruikt IE een andere manier van encoding die Apache niet snapt.

Is het een IE bug? is het een Apache bug? en wie heeft dit al meegemaakt / opgelost?

Apache versie: 1.3.26-0woody5 (Debian 3.0)

verkorte Apache logs:

FF met é.jpg in URL:
"GET /%E9.jpg HTTP/1.1" 200 6713

IE met é.jpg in URL:
"GET /%C3%A9.jpg HTTP/1.1" 404 707

IE met de FF encoded URL:
"GET /%E9.jpg HTTP/1.1" 200 6713

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Een probleem met firefox, apache en IE (die mij in dit geval de schuldige lijkt, misschien kun je ergens een encodering instellen ofzo), dat lijkt me meer iets voor SA :)

  • nhimf
  • Registratie: September 2000
  • Laatst online: 19-08 10:00

nhimf

Lekker belangrijk allemaal

Ziet eruit als een bug in IE:

Uit de ASCII tabel:
code:
1
2
3
%C3: capital A tilde                Ã     C3   Ã --> Ã   Ã   --> Ã
%A9: copyright sign                 ©     A9   © --> ©   ©     --> ©
%E9: small e acute                  é     E9   é --> é   é   --> é

bron: http://www.bbsinc.com/iso8859.html
Dus IE stuurt een à en © door ipv een é

ps: hier een overzicht van de standaard windows codering: http://www.microsoft.com/globaldev/reference/sbcs/1252.htm

[ Voor 18% gewijzigd door nhimf op 03-01-2005 12:15 ]

Ik stink niet, ik ruik gewoon anders


Verwijderd

Ik heb er niet al te veel verstand van, maar het heeft ws. iets met charsets te maken. IE grijpt kennelijk naar een charset met 2 bytes per karakter, itt tot Firefox die met %E9 de truuk doet.

Als jouw webserver niet weet dat de browser 2 bytes per karakter gebruikt, behandelt ie iedere byte als een apart karakter, en wordt dus de (niet bestaande) file 'é.jpg' opgevraagd. Ik weet niet precies hoe dit te voorkomen is, maar ik denk dat dat wel te vinden is (ik gok op iets met Accept en Charset oid). Misschien kun je ook eens kijken naar de exacte query van IE, of die wel of niet aangeeft dat ie 'n bepaald charset gebruikt.

  • nhimf
  • Registratie: September 2000
  • Laatst online: 19-08 10:00

nhimf

Lekker belangrijk allemaal

Verwijderd schreef op maandag 03 januari 2005 @ 12:12:
Ik heb er niet al te veel verstand van, maar het heeft ws. iets met charsets te maken. IE grijpt kennelijk naar een charset met 2 bytes per karakter, itt tot Firefox die met %E9 de truuk doet.

Als jouw webserver niet weet dat de browser 2 bytes per karakter gebruikt, behandelt ie iedere byte als een apart karakter, en wordt dus de (niet bestaande) file 'é.jpg' opgevraagd. Ik weet niet precies hoe dit te voorkomen is, maar ik denk dat dat wel te vinden is (ik gok op iets met Accept en Charset oid). Misschien kun je ook eens kijken naar de exacte query van IE, of die wel of niet aangeeft dat ie 'n bepaald charset gebruikt.
Dit zou kunnen en dan is het unicode (2bytes per char) en heb je windows xp :P
Probeer het anders eens met een lagere versie van windows, als het dan lukt, ligt het daar aan.

edit: De unicode versie van é is 0x00e9 (dus ook een e9), dus dat zou (volgens mij) niet het probleem moeten geven. Een null karakter (de eerste 00) wordt genegeerd, dus blijft er 0xE9 over.

edit2: De standaard ASCII tabel geeft voor é een 0xE9, de windows charset (1252) geeft ook een 0xE9 en de unicode geeft een 0x00E9 wat neerkomt op een 0xE9(zeker bij UTF-8), dus zou IE een %E9 moeten geven, dus lijkt mij een bug.

[ Voor 23% gewijzigd door nhimf op 03-01-2005 12:31 ]

Ik stink niet, ik ruik gewoon anders


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 17:39

Kees

Serveradmin / BOFH / DoC
Geen files met accenten gebruiken om mee te beginnen. voorkomen is beter dan genezen. Verder ook geen browser uit de vorige eeuw gebruiken maar een normaal functioneerende moderne browser.

Verder zou je mod_rewrite kunnen gebruiken omdat nu eenmaal het gros van het plebs geruik wil maken van die ene specifieke browser.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Verwijderd

Topicstarter
Kees schreef op maandag 03 januari 2005 @ 16:31:
Geen files met accenten gebruiken om mee te beginnen. voorkomen is beter dan genezen. Verder ook geen browser uit de vorige eeuw gebruiken maar een normaal functioneerende moderne browser.

Verder zou je mod_rewrite kunnen gebruiken omdat nu eenmaal het gros van het plebs geruik wil maken van die ene specifieke browser.
Ik gebruikte volledig up to date IE6 na aanwijzingen van een klant van het probleem.

Het probleem zit 'm in de geuploade files, die door particulieren aangebracht worden in de webapp van de klant, je kan moeilijk aan z'n gebruikers vragen van alle filenames te renamen (gemiddelde leeftijd vd gebruikers 30-50). Alsook het compleet negeren van de filenaam is niet aangewezen daar het voor de klant makkelijker is om te herkennen welke file het is aan de naam ipv een obscuur IDtje als naam te geven.

Bovendien lijkt het me een probleem dat beter aangepakt moet worden ipv voorkomen. Het lijkt toch wel te werken met FF dus evil tricks gaan coden om geen accenten e.d. in de files te krijgen laat ik liever achterwege.

Het vreemde is dat ik hier zo weinig informatie over kan vinden

[ Voor 15% gewijzigd door Verwijderd op 03-01-2005 16:44 . Reden: extra bemerkingen ]


Verwijderd

Topicstarter
nhimf schreef op maandag 03 januari 2005 @ 12:16:
[...]
Dit zou kunnen en dan is het unicode (2bytes per char) en heb je windows xp :P
Probeer het anders eens met een lagere versie van windows, als het dan lukt, ligt het daar aan.
Win2K + IE6 geeft identiek hetzelfde probleem hoor, ik denk dat het aan IE6 ligt en heb geen oudere versie voor de hand.

IE5 gevonden en ook hier hetzelfde probleem wel andere logs:

"\xe9.jpg"

[ Voor 10% gewijzigd door Verwijderd op 03-01-2005 16:54 ]


Verwijderd

nhimf schreef op maandag 03 januari 2005 @ 12:11:

Dus IE stuurt een à en © door ipv een é
Dat is toch gewoon UTF-8?

Ik probeer alles altijd gewoon in latin te houden, maar als er eens iets fout gaat zie ik altijd van die dubbele codes die beginnen met Ã.

Hier, dit wip ik bijv even uit een MySQL DB:

de Cafébrand in Volendam

Die code is dus volgens mij gewoon UTF-8 voor e-accent...

Verwijderd

Topicstarter
Tjah dat weet ik wel... ik vraag mij alleen af wat ik eraan kan doen...

Hoe kan ik ervoor zorgen dat IE6 geen UTF8 URL's GET of hoe kan ik ervoor zorgen dat mijn Apache UTF8 URL's snapt?

Verwijderd

Verwijderd schreef op maandag 03 januari 2005 @ 17:12:
[...]


Tjah dat weet ik wel... ik vraag mij alleen af wat ik eraan kan doen...

Hoe kan ik ervoor zorgen dat IE6 geen UTF8 URL's GET of hoe kan ik ervoor zorgen dat mijn Apache UTF8 URL's snapt?
Als je onder Linux draait moet je misschien eens naar de LANG environment variabele kijken en misschien heb je iets aan de internationalization howto:

http://home.no.net/david/i18n.php

  • R_W
  • Registratie: Oktober 2002
  • Niet online

R_W

Kun je er niet voor zorgen dat jouw webserver [img]"/%E9.jpg"[/img] uitspuugt?

  • Bananenplant
  • Registratie: Januari 2001
  • Laatst online: 21:45

Bananenplant

Blocking YOUR ads since 2005

Verwijderd schreef op maandag 03 januari 2005 @ 16:38:
[...]

Het probleem zit 'm in de geuploade files, die door particulieren aangebracht worden in de webapp van de klant, je kan moeilijk aan z'n gebruikers vragen van alle filenames te renamen (gemiddelde leeftijd vd gebruikers 30-50).
Dan zorg je toch dat rare tekens vervangen worden door gewone ASCII-tekens bij het uploaden :) ?

VVD. Maakt crises erger 🏚️ .
Zucmantaks, nu 💰 !
De mythe van de zelfredzame burger 🦄 .


Verwijderd

Topicstarter
R_W schreef op maandag 03 januari 2005 @ 17:21:
Kun je er niet voor zorgen dat jouw webserver [img]"/%E9.jpg"[/img] uitspuugt?
Tjah dat kan uiteraard maar zoals ik reeds zei wil ik dit en ander bijkomstig oplap-programmeerwerk vermijden. Ik doelde eerder op een foutieve config-optie of patch die je zou moeten toepassen op Apache zodat hij de URL's snapt.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 01:54
nhimf schreef op maandag 03 januari 2005 @ 12:11:
Ziet eruit als een bug in IE:

Uit de ASCII tabel:
code:
1
2
3
%C3: capital A tilde                Ã     C3   Ã --> Ã   Ã   --> Ã
%A9: copyright sign                 ©     A9   © --> ©   ©     --> ©
%E9: small e acute                  é     E9   é --> é   é   --> é

bron: http://www.bbsinc.com/iso8859.html
Dus IE stuurt een à en © door ipv een é

ps: hier een overzicht van de standaard windows codering: http://www.microsoft.com/globaldev/reference/sbcs/1252.htm
Mja, en toevallig is die A met dat gekke ding een onderdeel van een UTF-8 teken AFAIK.

  • mr_obb
  • Registratie: Juni 2001
  • Laatst online: 21-08 12:59

mr_obb

Lakse Perfectionist

Kijk eens naar de optie "AddDefaultCharset UTF-8" in je httpd.conf, misschien kan dat je verder helpen. Apache docs

[ Voor 5% gewijzigd door mr_obb op 03-01-2005 17:43 ]


  • R_W
  • Registratie: Oktober 2002
  • Niet online

R_W

Verwijderd schreef op maandag 03 januari 2005 @ 17:28:
[...]


Tjah dat kan uiteraard maar zoals ik reeds zei wil ik dit en ander bijkomstig oplap-programmeerwerk vermijden. Ik doelde eerder op een foutieve config-optie of patch die je zou moeten toepassen op Apache zodat hij de URL's snapt.
Is niet zo dat je volgens de standaarden niet eens URL's met speciale tekens mag gebruiken? Misschien kan een XHTML goeroe mij hier even bijstaan. :)

Verwijderd

Topicstarter
mr_obb schreef op maandag 03 januari 2005 @ 17:41:
Kijk eens naar de optie "AddDefaultCharset UTF-8" in je httpd.conf, misschien kan dat je verder helpen. Apache docs
Thanks but no help |:(

(doc is over Apache2, ik draai 1)

Ik denk trouwens dat dit gaat over de Content-Type header van de return naar de client, maar zover geraakt de URL nu net niet :p

Ik ben ondertussen deze bug op het spoor in een Apache2 mailinglist. Naar wat ik lees zou dit niet mogen gebeuren bij Apache1. Nu ja *bug* volgens de comments zou een URL geen NON-ASCII chars mogen bevatten en dus een onbepaald gevolg vertonen op client/server, maar omdat MS-IIS alles in UTF-8 verstuurt en ontvangt is dit blijkbaar in IE ook zo.
Pagina: 1