Discussion:
Apache - UTF-8
Ősz Ferenc
2004-06-29 08:59:24 UTC
Permalink
Az al=E1bbi probl=E9m=E1val ker=FCltem szembe:

Egy Win2000 webszerver (IIS) anyag=E1t tett=FCk =E1t a Linux/Apache p=E1ros=
ra, =E1m
nagy mennyis=E9g=FB =E9kezetes f=E1jln=E9v van a let=F6lthet=F5 dokumentumo=
k k=F6z=F6tt (=E9s
ezekre hivatkoz=E1sok az oldalakban). Ezek =E1tnevez=E9se gyakorlatilag nem
megoldhat=F3.

A gondot az jelenti, hogy a b=F6ng=E9sz=F5k jelent=F5s r=E9sze alapbe=E1ll=
=EDt=E1sk=E9nt
(IE, Opera) UTF-8 k=F3dol=E1ssal k=FCldi el az URL-eket, ezekre pedig a
webszerver ilyenkor (=E9kezetes f=E1jlnevek) 404-es hib=E1t dob.

Pl:
127.0.0.1 - - [29/Jun/2004:10:49:50 +0200] "GET /%E9let.doc HTTP/1.1" 200
0
127.0.0.1 - - [29/Jun/2004:10:50:09 +0200] "GET /%C3%A9let.doc HTTP/1.1"
404 283

Itt l=E1tszik, hogy az "=E9let.doc" f=E1jl eset=E9ben az UTF-8 kikapcsol=E1=
sa eset=E9n
megvan a f=E1jl, ellenkez=F5 esetben nincs. Viszont nem lehet elv=E1rni, ho=
gy az
oldal l=E1togat=F3i =E1t=E1ll=EDts=E1k b=F6ng=E9sz=F5iket...

A probl=E9m=E1t t=F6bb Apache (1.3.31 =E9s 2.0.49) =E9s linux disztriben (S=
uSE 8.2
=E9s 9.1, Debian Sarge) is teszteltem: egyar=E1nt fenn=E1ll. Az Apache doks=
iban
nem tal=E1ltam r=E1 megold=E1st.

Tal=E1lkozott-e valaki e probl=E9m=E1val? (Gondolom Magyarorsz=E1gon nem cs=
ak =E9n
futottam bele az =E9kezetes f=E1jlnevek/Apache probl=E9m=E1ba...)

=D5sz Ferenc
***@clphx.btk.ppke.hu
------------------------
Gábor Lénárt
2004-06-29 09:05:04 UTC
Permalink
Re,

Ezt most nem ertem. Akkor miert nem UTF-8 kodolassal teszed le a file-t a
filerendszerre magara, es kesz? Vagy azt szeretned hogy elerheto legyen
UTF-8-al _ES_ pl iso-8859-2 kodolassal _IS_?

On Tue, Jun 29, 2004 at 10:59:24AM +0200, Ősz Ferenc wrote:
[...]
A gondot az jelenti, hogy a böngészők jelentős része alapbeállításként
(IE, Opera) UTF-8 kódolással küldi el az URL-eket, ezekre pedig a
webszerver ilyenkor (ékezetes fájlnevek) 404-es hibát dob.
[...]
127.0.0.1 - - [29/Jun/2004:10:49:50 +0200] "GET /%E9let.doc HTTP/1.1" 200
0
127.0.0.1 - - [29/Jun/2004:10:50:09 +0200] "GET /%C3%A9let.doc HTTP/1.1"
404 283
- Gábor (larta'H)
Károly György Tamás
2004-06-29 09:18:00 UTC
Permalink
Kedves Ősz Ferenc!
Post by Ősz Ferenc
127.0.0.1 - - [29/Jun/2004:10:49:50 +0200] "GET /%E9let.doc HTTP/1.1" 200
0
127.0.0.1 - - [29/Jun/2004:10:50:09 +0200] "GET /%C3%A9let.doc HTTP/1.1"
404 283
Itt látszik, hogy az "élet.doc" fájl esetében az UTF-8 kikapcsolása esetén
megvan a fájl, ellenkező esetben nincs. Viszont nem lehet elvárni, hogy az
oldal látogatói átállítsák böngészőiket...
Ideiglenes megoldást tudok, ami hirtelen jó lehet...

.htaccess file-ba:
ErrorDocument 404 /cgi-bin/error404.cgi

error404.cgi file-ba:
if (tartalmaz % jelet az url)
{
átalakítjuk az url-t, utf8-ról;
if (létezik olyan, amire illeszkedik az új url)
{
location fejléc, vagy url kiírása a böngészőnek...
}
else
{
kiírjuk, hogy 404-es hiba, meg nincs ilyen, meg stb.
}
}
else
{
kiírjuk, hogy 404-es hiba, meg nincs ilyen, meg stb.
}

A nyelv kiválasztását rád bízom...
--
Szeretettel: Károly György Tamás
***@kgyt.hu - http://kgyt.hu
KORN Andras
2004-06-29 10:11:46 UTC
Permalink
Post by Károly György Tamás
Post by Ősz Ferenc
127.0.0.1 - - [29/Jun/2004:10:49:50 +0200] "GET /%E9let.doc HTTP/1.1" 200
0
127.0.0.1 - - [29/Jun/2004:10:50:09 +0200] "GET /%C3%A9let.doc HTTP/1.1"
404 283
Itt látszik, hogy az "élet.doc" fájl esetében az UTF-8 kikapcsolása esetén
megvan a fájl, ellenkező esetben nincs. Viszont nem lehet elvárni, hogy az
oldal látogatói átállítsák böngészőiket...
Ideiglenes megoldást tudok, ami hirtelen jó lehet...
ErrorDocument 404 /cgi-bin/error404.cgi
Ehelyett jo lehet egy csomo rewriterule, ami szep sorban atirja iso8859-2-re
az elofordulhato utf8-szekvenciakat. Lehet, hogy gyorsabb lenne, mint a cgi
(de az is lehet, hogy nem).

Guy
--
Andras Korn <korn at chardonnay.math.bme.hu>
<http://chardonnay.math.bme.hu/~korn/> QOTD:
Whoever decided to limit taglines to a single line can just kiss my
Károly György Tamás
2004-06-29 10:17:28 UTC
Permalink
Kedves KORN Andras!
Post by KORN Andras
Post by Károly György Tamás
ErrorDocument 404 /cgi-bin/error404.cgi
Ehelyett jo lehet egy csomo rewriterule, ami szep sorban atirja iso8859-2-re
az elofordulhato utf8-szekvenciakat. Lehet, hogy gyorsabb lenne, mint a cgi
(de az is lehet, hogy nem).
Jó az a megoldás is, de kell hozzá rivrájt modul az apacsba.
Megírni a cgi-t gyorsabb, a futás meg már nem sokat számít...
Gondolom nem lógnak majd rajta a juzerek állandóan...
Végülis ékezetes fájlokat nem sűrűn tölt a juzer. Persze
tévedhetek.
--
Szeretettel: Károly György Tamás
***@kgyt.hu - http://kgyt.hu
Bernádt Lehel
2004-06-29 12:24:33 UTC
Permalink
RewriteMap recode prg:/atkodolo/program
RewriteRule ^(.*)$ ${recode:$1}

Valami ilyesmi lenne jo szerintem, ahol /atkodolo/program atirja az utf-8
szekvenciakat. Mivel nagy mennyisegu ekezetes fajl van ezert nem sokkal
optimalisabb a cgi-s megoldas, fokepp hogy ebben az esetben folyamatosan
futna az apache mellett a program, cgi-nel meg minden 404-re kulon exec
lenne.
Post by KORN Andras
Ehelyett jo lehet egy csomo rewriterule, ami szep sorban atirja
iso8859-2-re az elofordulhato utf8-szekvenciakat. Lehet, hogy gyorsabb
lenne, mint a cgi (de az is lehet, hogy nem).
Guy
Károly György Tamás
2004-06-29 12:58:40 UTC
Permalink
Kedves Bernádt Lehel!


[...]
Post by Bernádt Lehel
Mivel nagy mennyisegu ekezetes fajl van ezert nem sokkal
optimalisabb a cgi-s megoldas, fokepp hogy ebben az esetben folyamatosan
futna az apache mellett a program, cgi-nel meg minden 404-re kulon exec
lenne.
Nem muszáj cgi, lehet szervermodul is, akkor nem kell külön
exec... Íme néhány lehetőség:

mod_perl, mod_tcl, mod_php (PHP), mod_scheme, mod_haskell,
mod_jk, mod_jk2, mod_uno, mod_lisp, mod_ocaml, Servlet++, T++,
mod_jrun, mod_jserv, Apache::ASP, OpenASP Module
--
Szeretettel: Károly György Tamás
***@kgyt.hu - http://kgyt.hu
PÁSZTOR György
2004-06-29 13:51:12 UTC
Permalink
Hali,
Post by Bernádt Lehel
szekvenciakat. Mivel nagy mennyisegu ekezetes fajl van ezert nem sokkal
optimalisabb a cgi-s megoldas, fokepp hogy ebben az esetben folyamatosan
futna az apache mellett a program, cgi-nel meg minden 404-re kulon exec
lenne.
Emlékeim szerint a fastcgi pont erre nyújtana megoldást, hogy csak egy db.
process fork()-ol, és ez vmi. socketen figyel, és így nem kell minden egyes
query-hez egy újat exec()-elni.

Üdv:Gyur!
-- -------[ Free Software ISOs - http://www.fsn.hu/?f=download ]------- --
PÁSZTOR György e-mail: ***@fsn.hu
Free Software Network (FSN.HU) cell.: +3620 512 3335
Ősz Ferenc
2004-06-29 12:37:59 UTC
Permalink
K=F6sz=F6n=F6m mindenkinek a seg=EDts=E9get. Igaz=E1b=F3l arra sz=E1m=EDtot=
tam, h=E1tha tud
valaki olyan Apache-opci=F3t (modult) ami "alapb=F3l" kezeli ezt a probl=E9=
m=E1t.

V=E9g=FCl is azt a megold=E1st v=E1lasztottam, hogy =EDrtam egy perl-progit=
ami
UTF-8 symlinkeket k=E9sz=EDt minden ilyen f=E1jlr=F3l.
Ez m=FBk=F6dik.

=D5sz F
------------------------
Loading...