|
Evo nam 26.lipnja, a sa 26.lipnjom naravno dolazi i 26. broj
'Webmajstori.Net' newslettera :-) U ovome broju ide svojevrsni
nastavak prethodnoga clanka o zastiti direktorija passwordom,
koji obradjuje daljnje mogucnosti koje nudi .htaccess.
Do iduceg broja, pozdrav. Adresu (za sve vrste kontakata)
znate: kontakt@webmajstori.net
Dodatni .htaccess trikovi
Napisao: Marko Radelic © 2001
- 2002
.htaccess je mali (sistemski) file pomocu kojeg mozete kontrolirati
mnoge stvari na vasem (Apache) serveru. Moze se koristiti
i za zastitu direktorija passwordom, izradu vlastitih error
stranica, izmjenu default stranice na serveru, koristenje
SSI-ja i PHP-a na stranicama s obicnom .htm ekstenzijom, zabranu
pristupa pomocu IP adrese i zabranu linkanja na vase fileove.
Na siteu mozete imati vise .htaccess fileova i to u svakome direktoriju
po jednog. .htaccess ce upravljati direktorijem u kojem se nalazi
te svim njegovim poddirektorijima. Upravo zato je prakticno (osim
u slucaju sa zastitom direktorija) imati samo jedan .htaccess file
u root direktoriju s kojim cete imati kontrolu nad cijelim vasim
web siteom.
O tome kako
zastititi direktorije passwordom smo vec pisali. Idemo
vidjeti sto jos moze .htaccess.
Izrada vlastitih error stranica
Ovo je jedna od najcesce koristenih funkcija .htaccess filea.
Kada posjetitelj naidje na neku od standarnih gresaka, browser ce
mu otvoriti stranicu koju ste vi odredili za taj tip greske. Svrha
toga nije da biste na tim stranicama ispisivali vase duhovite poruke
(mada ima i toga :), vec da surferu pruzite kvalitetno surfanje
(nema ruznih blank-browserskih default stranica) i sto je najvaznije
- da ne izgubite surfera koji naidje na gresku (uvijek ga mozete
preusmjeriti na neku drugu stranicu).
Primjer: netko je prije dvije godine stavio neku stranicu vaseg
sitea u favoritese i ide je upravo danas ponovo posjetiti. Vi ste
naravno u medjuvremenu dosta toga promijenili i te stranice vise
nema. Recimo: http://www.monitor.hr/starastranica.htm
- posjetite ovu stranicu i pogledajte sto je surferu prikazano.
Oni iskusniji ce se naravno snaci, ali dosta njih ce iz ovoga smatrati
da vas site vise ne postoji (odnosno taj sadrzaj po koji su dosli
na stranicu) i tako cete izgubiti posjetitelje.
Upotrebom .htaccess-a mozete dobiti ovakav odgovor na nepostojecu
stranicu:
http://www.besplatne-stvari.com/starastranica.htm
A sad na posao! Postoji vise tipova gresaka sto znaci da cete
za svaku trebati u posebnoj liniji odrediti adresu stranice koju
zelite da se otvara. Neke od gresaka:
400 BAD REQUEST
401 AUTHORIZATION REQUIRED
403 FORBIDDEN DOCUMENT
404 FILE NOT FOUND
500 INTERNAL SERVER ERROR
Ako netko naidje na 404 gresku, biti ce preusmjeren na vasu 404
stranicu kada u .htaccess file upisete 404 kôd:
ErrorDocument
404 http://www.vasadomena/greske/stranica.htm
U ovom primjeru otvarat ce se vasa stranica.htm koju ste spremili
u direktorij greske. I
za druge greske je postupak isti, npr. '500 Internal Server Error'
ce biti ErrorDocument 500 http://....
Dakle, otvorite novi dokument u nekom od tekstualnih editora
(Notepad, Textpad...) i u njega pastajte sljedeci kôd:
ErrorDocument 400 http://www.vasadomena/greske/400.htm
ErrorDocument 401 http://www.vasadomena/greske/401.htm
ErrorDocument 403 http://www.vasadomena/greske/403.htm
ErrorDocument 404 http://www.vasadomena/greske/404.htm
ErrorDocument 500 http://www.vasadomena/greske/500.htm
Pritome naravno izmijenite podebljani tekst (naziv samih stranica
ne mora biti ovakav i mozete koristiti samo jednu stranicu da se
prikazuje kod svih gresaka). File spremite kao .htaccess i posaljite
ga FTP-om u vas root direktorij.
|
Izdvojeno - problemi sa spremanjem filea
Kod spremanja filea na
disk mozda cete naici na probleme. .htaccess je neobicno ime
za file (file nema 'ime' vec samo ekstenziju od 8 znakova),
pa se moze dogoditi da vam pod Windowsima nece biti dozvoljeno
snimiti ga pod tim imenom. U tom slucaju ga snimite kao:
.htaccess.txt
i posaljite na server
te ga tamo pomocu FTP programa preimenujte u pravilan naziv:
.htaccess
|
Jasno, trebate izraditi i gore navedene stranice i staviti
ih na server. Ako zelite, mozete na svakoj stranici napisati
opis greske koji dolazi uz nju (npr. 404 - 'doslo je do greske,
stranica ne postoji. Molimo vas da obavijestite webmastera
na email.' ili 403 - 'nemate pristup zasticenoj stranici'.
Ili jednostavno staviti preusmjeravanje sa svake stranice
na vasu pocetnu stranicu.
Izmjena defaultne stranice na serveru
Na vecini servera pocetna stranica mora imati naziv 'index'.
Kada se pristupa nekom direktoriju na vasem siteu, npr: http://www.vasa-domena.com/,
automatski se vrsi redirekcija na http://www.vasa-domena.com/index.html
(ili neka druga ekstenzija). To takodjer mozete promijeniti.
Npr. zelite da se stranica zove necudasezoveindex.php. Potrebno
je dodati sljedece u .htaccess file:
DirectoryIndex necudasezoveindex.php
To ce onda biti stranica koja ce se automatski otvarati prilikom
pozivanja direktorija u kojem se nalazi.
Koristenje SSI-a na stranicama sa .html ili .htm ekstenzijama
Ako vam je na serveru podeseno da se SSI moze izvrsavati iskljucivo
sa .shtml (.shtm) stranica, a iz odredjenih razloga ne zelite odstupati
od standardnih ekstenzija, opet vam moze pomoci .htaccess! Dodajte
sljedece linije u svoj .htaccess file:
AddType text/html .shtml .shtm .html .htm AddHandler
server-parsed .shtml .shtm .html .htm
Koristenje PHP-a na stranicama sa .html ili .htm ekstenzijama
Izvrsavanje PHP-a na .html stranici? Opet .htaccess. Dodajte
ovu liniju:
AddType application/x-httpd-php .html .htm .php
Zabrana pristupa stranici odredjenim IP adresama
Moguce je zabraniti pristup i odredjenim IP adresama. Stavite
sljedece linije u .htaccess:
<Limit GET>
order allow,deny
deny from xxx.xxx.xxx.x
allow from all </Limit>
Gdje je xxx.xxx.xxx.x neka IP adresa kojoj zelite zabraniti pristup.
Ako zelite staviti jos adresa, samo kopirajte 'deny from xxx.xxx.xxx.x'
u red nize i izmijenite IP.
U Hrvatskoj vecina korisnika-pojedinaca ima drukciju IP adresu
prilikom svakog spajanja na internet, pa ce biti malo teze zabraniti
pristup nekome pojedinacno. Zato mozete zabraniti pristup cijeloj
skupini korisnika tako sto cete zabranu postaviti na sve IP adrese
koje sadrzavaju odredjene brojke. Primjer: probajte ovo ako ne zelite
vidjeti Hinet korisnike na vasim stranicama:
<Limit GET>
order allow,deny
deny from 195.29
allow from all </Limit>
Takvo nesto se moze napraviti i elegantnije, na ovaj nacin:
<Limit GET>
order allow,deny
allow from all
deny from hinet.hr </Limit>
Takodjer je moguce svima zabraniti pristup, a dopustiti samo odabranima.
U tom slucaju stavit cete:
<Limit GET>
order deny,allow
deny from all
allow from xxx.xxx.xxx.x </Limit>
Gdje je xxx.xxx.xxx.x IP adresa kojoj zelite dati pristup vasim
stranicama.
Zabrana linkanja na fileove sa vaseg servera
Bandwidth vam je preskup ili imate neki drugi razlog zasto vam
ne odgovara da se na vase fileove (grafike, zipove...) linka direktno
sa drugih stranica? Primjer: na serveru imate file popularni-jole.mp3
za kojim je velika potraznja na internetu pa ga i drugi webmasteri
zele ponuditi svojim posjetiteljima na download, a pritome su kao
download link postavili
http://www.vasadomena.com/narodna/popularni-jole.mp3 te
vam tako trose bandwidth.
Postavite sljedece linije u vas .htaccess file, i nakon toga
ce se Jole moci downloadirati samo s vase domene:
AuthUserFile /dev/null AuthGroupFile /dev/null
RewriteEngine On RewriteCond %{HTTP_REFERER}!>http://www.vasa-domena.com[NC]
RewriteCond %{HTTP_REFERER}!>http://www.nekadrugadomena.com[NC]
RewriteCond %{HTTP_REFERER}!>http://xxx.xxx.xxx[NC]
RewriteRule /*http://www.vasa-domena.com/stranica.htm[R,L]
"RewriteCond %{HTTP_REFERER}!>http://...[NC]"
je linija u koju stavljate URL sa kojega se fileovi smiju preuzimati.
Kao i dosad, i ovdje mozete dodavati nove linije istoga naziva
i tako npr. omoguciti download i s nekog drugog (prijateljskog
:-) sitea. Brojevi xxx.xxx.xxx su IP adresa vasega sitea.
"RewriteRule /*http://www.vasa-domena.com/stranica.htm[R,L]"
je stranica na koju ce se vrsiti redirekcija ukoliko pristup fileu
nije nastupio sa dozvoljenih domena.
Vjerojatno nije najbolje rjesenje da ovo postavite u .htaccess
koji se nalazi u rootu. Radije napravite poseban direktorij
i u njega postavite .htaccess i fileove za koje ne zelite
da ih se linka sa drugih stranica.
A kako zastititi same .htaccess fileove?
Vase .htaccess fileove moze procitati svatko tko ih upise u browser.
Vjerojatno ne zelite da se to dogadja (posebno ne ako se unutra
moze procitati lokacija .htpasswd fileova), pa se zato mozete posluziti
metodom zabrane pristupa svim .htaccess fileovima - sljedeci kôd
pastajte u .htaccess file koji vam se nalazi u rootu:
<Files .htaccess>
order allow,deny
deny from all </Files>
pa nece biti moguc pristup niti jednom .htaccess fileu na vasem
serveru.
To bi bilo sve od mene u vezi sa ovom temom. Po jos znanja mozete
otici na http://apache-server.com/tutorials/
ili neku slicnu stranicu koja se puno detaljnije i strucnije bavi
ovim temama.
O autoru:
Marko Radelic (marko@logit.hr)
- je Chief Marketing Manager Webmajstori.Net sitea i od njega
je zapravo pocelo sve. Okupio je ekipu koja je okupila ekipu
itd. Marko ima zaduzenje da se brine o promidzbi sajta i zna
stotine nacina kako dovesti i zadrzati posjetitelja na siteu.
Besplatne-Stvari.com,
Newsletteri.com i
Top-Lista.com, su samo
neki od tisuca siteova u kojima ima prste :) Marko radi za
tvrtku logIT (www.logit.hr)
koja se bavi internet marketingom i izradom web stranica.
|