Apache2: problem s prikazom slova s dijakritičkim znakovima nakon prijelaza s Apacheja 1.X

Mnogi sistem inženjeri su nakon prijelaza s Apache 1.x na Apache 2.x web poslužitelj primjetili da im se na web stranicama ne prikazuju dobro hrvatska slova s dijakritičkim znakovima. Gotovo uvijek je uzrok bila zaostala direktiva u konfiguraciji:

AddDefaultCharset ISO-8859-1

Direktiva AddDefaultCharset je namijenjena za dodjeljivanje osnovne kodne stranice (charseta) vašim web stranicama (kod nas su to najčešće ISO8859-2 i Windows CP-1250). Ukoliko je u konfiguraciji navedena neka druga kodna stranica (kao u ovom primjeru ISO-8859-1), onda ona ima prioritet nad eventualnim META tagovima unutar vaših stranica (iako, zadnju riječ ima korisnikov browser). To znači da će stranice biti prikazane u pogrešnoj kodnoj stranici, i zahtijevat će od korisnika da ručno podese svoje browsere.

Da ne duljimo, najjednostavnije rješenje problema je jednostavno zakomentirati ovu direktivu u /etc/apache2/apache2.conf, podrazumijevajući da su vam stranice ispravno podešene i imaju navedenu ispravnu kodnu stranicu u META zaglavljima. Ukoliko to ne pomogne, možete postaviti direktivu AddDefaultCharset na odgovarajuću kodnu stranicu u konfiguraciji svakog virtualnog hosta koji to zahtijeva, ili je podesiti u datoteci apache2.conf ukoliko vam je cijeli site u istoj kodnoj stranici.

Nakon promjena uvijek trebate reloadati apache poslužitelj, no to vjerojatno i sami znate:

# /etc/init.d/apache2 reload

 

Kuharice: 
Kategorije: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)

Komentari

Kako je kod mene direktiva u /etc/apache2/apache2.conf bila ispravna (zakomentirana), a prikaz znakova neispravan, morao sam kopati dalje. Otkrio sam da kod mene probleme radi datoteka charset koja se nalazila u /etc/apache2/conf.d/ i u sebi je imala samo tu direktivu koja je pravila problem.

Moj problem je malo drugaciji:

Prije prelaska na Apache2, sve je bilo OK. Nakon prelaska javio se "problem" koji ste opisali. No, samo zakomentiranje navedene linije nije rijesilo problem, jer browseri nisu prepoznavali kodne stranice navedene u meta tagovima, nego su sve "trpali" pod UTF-8. Opet, ako se AddDefaultCharset postavi na ISO-8859-2, onda probleme s prikazom znakova ima recimo LDAP, za koji je potrebno UTF-8 (koliko sam skuzio). S obzirom da je na staroj verziji sve radilo OK, tj. citalo se iz meta tagova, vjerujem kako je to i sada moguce, ali me uspijevam pronaci sto treba podesiti kako bi to funkcioniralo.

EDIT: Sad sam tek vidio gornji komentar i cini mi se kako bi to i kod nas mogao biti "problem". Sad cu provjeriti...