Redirekcija sa .htaccess

Po završetku redizajna sajta, i kompletnom prelasku sa statičkih .html na dinamičke .php stanice, pogledao sam log sajta, da bih se uverio da je sve na svom mestu (ako ste i vi kod Verata, to je /log/ime-domena-err datoteka).

Užasnuo sam se gomilom grešaka 🙁 prvenstveno HTTP/404 Page not found. Normalno, više od polovine pogodaka na moj sajt dolazi sa raznih pretraživača, a oni ne osvežavaju sadržaj keša preterano često – Google ima keširan sajt od pre mesec dana. Ok, trebalo je rešiti pitanje šta sa starim adresama, koje su se negde zadržale (a u svetlu inicijative “no broken links”).

Jedna od opcija je kreiranje svih strana koje su i ranije postojale, sa kodom za redirekciju na novu stranu (meta tag) ili linkom koji vodi na novu stranu za slučaj da pregledač ne poštuje meta direktive. No, to je bilo krajnje ružno rešenje; posle malo guglovanja, uz činjenicu da je web server Apache, našao sam idealno rešenje: .htaccess datoteka! (o kojoj ama baš nigde ništa ne piše na Veratovom sajtu).

.htaccess je obična tekstualna datoteka, namenjena kontroli ponašanja web servera na direktorijum nivou; primenjuje se u direktorijumu gde je, kao i u svim poddirektorijumima ispod koji nemaju svoju .htaccess datoteku.

Pomoću ovde datoteke moguće je postavljati prava pristupa, kontrolisati redirekciju kao i koja strana odgovara na HTTP greške. Korišćenje je vrlo jednostavno; otvorite je u tekst editoru i postavite:

redirect 301 /index.html http://www.vesic.org/index.php

redirect definiše tip komande, 301 kod koji će se poslati pregledaču (Moved Permanently, za slučaj da je pretraživač u pitanju, znaće da tražena stranica nije važeća i staviće novu u red za keširanje) kao i ciljni URL na koji treba preusmeriti pregledač. Ovo je client-side redirekcija; ako želite da radite server-side redirekciju (brže, ali nema informacije za korisnika da je do promene došlo) koristite Rewrite direktive (rewriteEngine, rewriteCond, rewriteRule).

Kada već menjamo fajl, nije loše dodati i ovo:

ErrorDocument 404 /404.php

Ovako sve HTTP 404 greške preusmeravamo na našu stranu, i time izbegavamo standardnu stranu od provajdera. Za više detalja o .htaccess datoteci, molim pogledajte ovde.

BLOG – šta je to, čemu služi a uz to i ne radi? :)

Da, nekako sam smetnuo sa uma da nigde nisam objasnio detalje i uopšte ideju weB LOGa, kao i programe koji vam mogu koristiti pri praćenju blogova.

Web Log ili Blog je prosto on-line dnevnik u kome autor/autori iznose bilo šta što misle da je interesantno za publiku ili prosto zato što to žele 🙂 Određeni članak se vrlo često referiše kao “blog” kao i ceo dnevnik. Ono što blogove razlikuje od običnih stranica na sajtu je ideja sindikacije / skupljanja – mogućnosti da sa jednog mesta / programa pratite sve web dnevnike koji vas interesuju – umesto da jurite po stranicama raznih sajtova, startujete program, Blog ili RSS čitač (pri tome ste naravno konektovani na Mrežu), on pokupi najnovije članke (zna li neko bolju reč?) i vi natenane čitate sve što je objavljeno od vašeg poslednjeg konektovanja.

Za praćenje blogova preporučujem SharpReader, besplatan i solidan (potreban je .Net 1.1 framework; ako imate noviji operativni sistem, verovatno ga već imate na sistemu; ako ne, možete ga skinuti ovde, 23 Mb uz eventualne ispravke sa WindowsUpdate sajta)

Što se samih blogova tiče, to jako zavisi od vašeg interesovanja. Na srpskom ih ima malo, znam za Dejana Jelovića i Gorana Aničića (ako znate još nekog, javite), na engleskom daleko više, procunjajte po mreži, tj. google-ajte malo 🙂

Ispravka: srpskih blogova ima, i to solidan broj; krenite samo od Goranovog sajta ili od Планете Србије i naćiće ih se 🙂

Update 27.9.2006: napisao sam mnogo detaljniji tekst na ovu temu: http://www.vesic.org/za-pocetnike/sve-o-blogu/

WordPress i lokalizacija

Kada sam odlučio da krenem sa blogom, ispitao sam 4 rešenja za Linux/Apache/Php.

WordPress je bez daljnjeg daleko ispred tih rešenja: izuzetno laka konfiguracija, udoban i efikasan interfejs i minimalni zahtevi:

  • PHP version 4.1 ili noviji (PHP 5 se još ne preporučuje)
  • MySQL version 3.23.23 ili noviji

Ono što je bitno, WP podržava i lokalizaciju; recimo, izmenom fajla wp-includes/locale.php možete podesiti nazive meseci i dana u nedelji. No, šta da radimo sa Četvrtkom 🙂 (jedini pomenuti ima naša slova u nazivu)?

Akcija zavisi od vaše oduke: koji kodni raspored želite na stranicama? Kod nas su uobičajeni osmobitni standardi Windows 1250 (ne preporučujem, iako je lakše pripremati stranice u ovom rasporedu na Windows platformi) i ISO 8859-2 (daleko bolji izbor).

No, više nema razloga da ne koristite neki potpuniji standard, koji vam neće vezivati ruke, ni vama ni vašim posetiocima koji ostave eventualni komentar 🙂 – Unicode.

Unicode definiše tačan raspored karaktera, ali ne i njihovu prezentaciju (zapis) u odgovarajućem mediju. Za to su i dalje odgovorne kodne strane; za Unicode, prirodan izbor je UTF8, Unicode Transformation Format-8, način da Unicode karaktere predstavimo preko 8 bita (ako vas ovo zanima detaljnije, predlažem odličan članak Marka Dejvisa)

Ok, odlučili ste se za UTF8. Potrebne su dve stvari:

1. da pregledaču (browseru) posetioca vašeg sajta "kažete" da je strana zapisana u UTF8 kodnoj strani:

U okviru <head> … </head> sekcije strane, dodajte ovaj meta tag:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

2. da sadržaj na strani zaista i bude zapisan u UTF8 formatu

Stavka dva zna da bude problem; prvo, "prava" UTF8 datoteka ima na početku tri bajta ili UTF8 signature (xEF xBB xBF) koje znaju da zbune neke tekst editore. Drugo, ako je to datoteka izvornog koda (.php / .asp strana), server može da pravi problema oko tako zapisane strane.

Da se vratimo na primer kojim smo počeli: locale.php; tu je četvrtak zapisan kao:

$weekday[4] = __(‘Četvrtak’);

No, kako zapisati Č? Tip fajla ne može da bude UTF8 jer se php uguši sa ovakvim fajlom a ni jedna od osmobitnih kodnih strana ne vrši posao. Srećom, neko je i na to mislio 🙂 Iskoristio sam HTML kodiranje (&#) bilo kog karaktera; tako gornji red postaje:

$weekday[4] = __(‘&#268;etvrtak’);

zapisan na stari način (osmobitni karakteri) a prikazan kako treba (pogledajte kalendar desno). Prihvatam da ovakav način zapisa izgleda rogobatno, ali rešava mnogo više problema no što ih uvodi.

Zaključak: ako radite u datotekama izvornog koda, koristite gornji način; ako direktno editujete neku statičku HTML stranicu, koristite editor koji to podržava, kao što je recimo Scite. Evo tabele najinteresantnijih karaktera za naše podneblje:

&#262;  Ć   &#263;  ć   &#268;  Č   &#269;  č
&#272;  Đ   &#273;  đ   &#352;  Š   &#353;  š
&#381;  Ž   &#382;  ž   &#128;  €   &#174;  ®

a kompletnija tabela je ovde: http://www.tony-franks.co.uk/UTF-8.htm

Knjiga za septembar

Den Simons - Leto Noći
Odavno nisam uživao u čitanju jedne knjige kao što je to Leto noći Dena Simonsa.

Uzbudljiva, odlično napisana, jedna od onih ne-mogu-da-prestanem-sa-čitanjem knjiga koja vas drži do poslednje stranice; prosto me strah da krenem sa čitanjem nastavka, Ukleta zima– em je nastavak, em ne želim da pokvarim dobar utisak ove knjige.

Preporučujem svim ljubiteljima horora a i ostalima.

Kada smo već tu, učlanite se u Lagunin klub čitalaca – popusti od 15% do 35% i redovno obaveštavanje o novim naslovima.

CSS, PHP, Smarty na delu

Jako dugo vremena sam zapostavljao Vesic.org i po pitanju sadržaja a i po pitanju samog html koda koji je prikazivao sajt.

Igrom slučaja (čitaj: razboleo se na odmoru ;)) dobio sam malo vremena koje sam posvetio kompletnoj obnovi sajta; uz Aleckovu pomoć, kompletan HTML kod je prepisan po CSS2 standardima što je sledeći korak daleko olakšalo: upotreba šema (templates).

Ono što je za svaki sajt karakteristično je da sve strane slede neki definisani dizajn, i da se samo radni (obično središnji deo) deo menja u zavisnosti šta je potrebno na toj strani prikazati. Ostatak strane je identičan, do nivoa referenci na ostale objekte (skriptove, css datoteke, slike) koje se menjaju u zavisnosti od “dubine” na kojoj se dotična strana nalazi u strukturi sajta.

Za održavanje tog zajedničkog dela postoje ručni 😉 metod, i metod šema – uz pomoć nekog programa obeležite zajedničke delove strane, markirate ih, a taj program se brine o tome da se pri promeni zajedničkog dela to propagira kroz sve stranice koje koriste tu šemu. U početku, taj posao je obavljao jako dobro Dreamveawer, izuzetno dobar, zahtevan i skup program.

No, kako sam ja programer i daleko lakše koristitim čist tekst editor, a moj provajder Verat u okviru web paketa besplatno omogućava Php i MySQL, ideja se sama nametnula – probati nešto novo. Na savet kolege Marjana, pogledao sam Smarty, odličnu php biblioteku šema: stabilna, dobro urađena i laka za korišćenje. Malo programiranja, malo premeštanja stranica po sajtu, izdvajanja zajedničkih delova (navigacije) za grupe stranica i sada je održavanje sajta milina; dve šeme, header.tpl i footer.tpl i set stranica koje izgledaju otprilike ovako:

< ?php
$selectedLink = 1;
$selectedSubNavLink = 0;
include 'subnav.php';
?>

i to je sve 🙂 subnav.php čuva navigaciju za taj direktorijum a sam sadržaj stranice (centralni deo) je u posebnim datotekama, koje su oslobođenje bilo kakve navigacije i formatiranja (tnx to CSS2 i Aleck :)).

Rezultat je pred vama: mnogo brži sajt (Smarty podržava keširanje jednom izvršene strane), i daleko lakše održavanje sajta (što znači više vremena za kvalitetan sadržaj).

Pinnacle PCTV DeLuxe do maksimuma

Pinnacle ima reputaciju proizvođača odličnih kartica i ne tako odličnih pratećih programa; dodajte na to osobinu Pinnacle-ta da "zaključava" svoje drajvere tako da ih ne možete koristiti iz drugih programa i eto izvora mogućih problema.

Upravo se to dešava nekim korisnicima gornje kartice: digitalizacija (grebovanje, capture) analognog video materijala često ne uspeva ili je broj ispuštenih sličica iznad svake granice – pri tom su sva uobičajena "pravila" ispoštovana:

  • Mašina je sa svim aktuelnim ispravkama (bios, operativni sistem) i stabilno radi
  • Koristi se USB 2.0 port za komunikaciju sa Pinnacle karticom a ne stariji USB 1.1
  • Svi nepotrebni pozadinski procesi (a ponekad i antivirus programi) su pogašeni ili suspendovani
  • Ciljni disk u sistemu je najbrži, sa dovoljno prostora na njemu i defragmentovan

Na sreću, postoje alternativni programi koji daju mnogo bolje rezultale sa istim hardverom, o kojima se malo ili nimalo zna. Evo ih ovde:

a puno detalja i saveta imate i na ovom linku.

Dobrodošli na moj blog

Iako volim tehnologije to nije pravi razlog za otvaranje blog-a ( weB LOG: dnevnik na webu, više definicija ovde) već mogućnost da informaciju prenesem na Mrežu bez puno problema i editovanja razno-raznih html fajlova.

Naravno, i mogućnost da neko direktno prokomentariše ono što ste rekli i time doprinese celoj priči uopšte nije zanemarljiva … naravno, to jednom kada se za moj blog čuje 🙂

U svakom slučaju, nadam se da će ovaj blog i moj sajt biti dovoljan razlog da u ove virtuelne krajeve češće svratite 🙂

Još jednom, dobrodošli.