.htaccess kao pouzdan alat – primeri

.htaccess je, kao što većina zna, fajl kojim je moguće kontrolisati ponašanje Apache Web servera i sa njim je moguće uraditi dosta zanimljivih stvari. Većina hosting provajdera nudi mogućnost korišćenja .htaccess fajla ali u slučaju pogrešnog konfigurisanja se može vrlo lako desiti da vaš sajt prestane sa radom, pa vam savetujem da pre svake izmene uradite bekap.

Evo par zanimljivih linija koda koje bih želeo da podelim sa vama a koje su meni više puta trebale u raznoraznim projektima na kojima sam radio.

Uklonite ekstenzije iz URL-a

U slučaju da želite da uklonite .html ili .php ekstenzije iz URL-a, malo podešavanje .htaccess-a je odličan način da to i izvedete.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

Personalizujte stranice sa porukama o grešci

Ako vam je dosadila standardna Error 404 ili Error 403 stranica, postoji vrlo jednostavan način da postavite nešto što se vama dopada.

ErrorDocument 400 badrequest.html
ErrorDocument 401 authreqd.html
ErrorDocument 403 forbid.html
ErrorDocument 404 notfound.html
ErrorDocument 500 servererr.html

Forsirajte skidanje odgovarajućih tipova fajlova

Ne želite da vaši posetioci otvaraju mp3 ili video fajlove u okviru svog browsera? No problemo.

  ForceType application/octet-stream
  Header set Content-Disposition attachment

Drugi način da to izvedete i menjanje samog httpd.conf fajla:

<filesmatch "\.(?i:mp3)$"="">
  ForceType audio/mpeg
  SetEnvIf Request_URI "^.*/?([^/]*)$" FILENAME=$1
  Header set Content-Disposition "attachment; filename=%{FILENAME}e"
  UnsetEnv FILENAME

Zabranite hotlinking

Ako ne želite da vam bespotrebno opterećuju server ili troše protok, prosto zabranite hotlinking. Na primer, sledeći kod zabranjuje hotlinkig slika:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?vassajt\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Zamenite denied.jpg sa vašom slikom
RewriteRule .*\.(jpe?g|gif|bmp|png)$ denied.jpg [L]

Sprečite listanje sadržaja direktorijuma

Apache nudi mogućnost prikaza sadržaja kompletnog direktorijuma kao i kretanje kroz direktorijume. Ukoliko ne želite da svako vidi šta držite po serveru, to možete sprečiti ili kreiranjem praznog index.html fajla ili korišćenjem sledećeg koda:

Options -Indexes

Brisanje ili dodavanje www u URL

Ukoliko želite da vršite redirekciju korisnika na www ili non-www verziju vašeg sajta, u zavisnosti od toga šta vam je primarni domen, taj posao možete najlakše i najpravilnije uraditi putem .htaccess-a.

Redirekcija na www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^vasdomen.com [NC]
RewriteRule ^(.*)$ http://www.vasdomen.com/$1 [L,R=301]

Redirekcija na non-www:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^vasdomen.com$ [NC]
RewriteRule ^(.*)$ http://vasdomen.com/$1 [L,R=301]

Imate neki dobar kod?

Ukoliko imate neki zanimljiv kod koji bi mogao da se doda u ovoj listi, pošaljite mi ga i rado ću ga objaviti. Time možemo mnogo lakše skupiti znanje na jedno mesto i pomoći onim ljudima kojim naše zajedničko znanje i iskustvo može biti od koristi.

Tagovi: