Vodič za .htaccess fajl

Šta je .htaccess fajl?
.htaccess (Hypertext Access) je konfiguracioni fajl za Apache i LiteSpeed web servere. Na BeoHosting-u ga uređujete kroz cPanel kontrolni panel. Nalazi se u root direktorijumu vašeg sajta i omogućava vam da kontrolisete ponašanje servera na nivou direktorijuma - bez pristupa glavnoj konfiguraciji servera. To ga čini izuzetno korisnim na shared hostingu gde nemate pristup httpd.conf fajlu.
Tačka na početku imena znači da je fajl skriven na Linux/Unix sistemima. Neki FTP klijenti i fajl menadžeri ga ne prikazuju po default-u - proverite opcije za prikaz skrivenih fajlova. U cPanelu, File Manager ima opciju "Show Hidden Files" u podešavanjima.
Gde se .htaccess nalazi?
Glavni .htaccess fajl se nalazi u root direktorijumu vašeg sajta (public_html ili htdocs). Pravila u njemu se primenjuju na sve fajlove i poddirektorijume. Možete imati dodatne .htaccess fajlove u poddirektorijumima sa pravilima specifičnim za taj direktorijum - oni nađacavaju pravila iz roditeljskog .htaccess-a za fajlove u tom direktorijumu.
Preusmeravanja (Redirects)
301 trajno preusmeravanje
301 redirect govori pretraživačima da je stranica trajno premestenapod novu adresu. SEO vrednost (link juice) se prenosi na novu URL adresu. Koristite ga kada menjate URL strukturu sajta, selite sajt na novi domen ili želite da konsolidujete više URL-ova na jedan.
- Preusmeravanje jedne stranice: Redirect 301 /stara-stranica /nova-stranica - preusmerava konkretnu putanju na novu.
- Preusmeravanje celog domena: Koristi RewriteRule sa HTTP_HOST uslovom da preusmerava sav saobraćaj sa jednog domena na drugi.
- Preusmeravanje sa www na bez www: RewriteCond za HTTP_HOST koji proverava prisustvo www prefiksa i preusmerava na verziju bez www (ili obrnuto).
302 privremeno preusmeravanje
302 redirect je privremen - govori pretraživačima da zadrže stari URL u indeksu jer će se stranica možda vratiti na staru adresu. Koristite ga za privremene promocije, A/B testiranje ili održavanje.
Forsiranje HTTPS
Jedno od najčešćih korišćenja .htaccess-a je preusmeravanje HTTP saobraćaja na HTTPS. Za ovo vam je potreban instaliran sertifikat koji omogućava HTTPS. Ovo je esencijalno za bezbednost sajta i SEO rangiranje. Pravilo koristi RewriteCond da proveri da li je konekcija već HTTPS (putem HTTPS promenljive ili X-Forwarded-Proto header-a) i ako nije, vrsi 301 preusmeravanje na HTTPS verziju iste URL adrese.
Bezbednosna pravila
Zaštita od pristupa osetljivim fajlovima
Blokirajte pristup fajlovima koji ne bi trebalo da budu javno dostupni. FilesMatch direktiva sa regularnim izrazima može da blokira pristup konfiguracionim fajlovima poput .htaccess, .env, wp-config.php, php.ini i sličnih. Server vraća 403 Forbidden grešku kada neko pokusa da pristupi ovim fajlovima.
Zaštita direktorijuma od listanja
Opcija "Options -Indexes" sprečava Apache da prikazuje listu fajlova u direktorijumu koji nema index fajl. Bez ove opcije, bilo ko može videti sve fajlove u direktorijumu jednostavnim pristupanjem URL-u direktorijuma.
Blokiranje zlonamernih botova
Koristite RewriteCond sa HTTP_USER_AGENT promenljivom za blokiranje poznatih zlonamernih botova, scrapera i spam crawlera. Možete koristiti regularne izraze za poklapanje više user-agent stringova i preusmeriti ih na 403 stranicu ili jednostavno blokirati pristup.
Zaštita od hotlinkinga
Hotlinking je kada drugi sajtovi direktno koriste vaše slike sa vašeg servera, trošeći vašu propusnu moć. RewriteCond pravilo proverava HTTP_REFERER header i blokira zahteve za slike (jpg, jpeg, png, gif, svg) koji ne dolaze sa vašeg domena. Možete čak preusmeriti hotlinkovane slike na placeholder sliku koja govori da je hotlinking blokiran.
Keširanje (Caching)
Pravilno podešeno keširanje dramatično ubrzava vaš sajt za povratne posetioce. Browser kesira fajlove lokalno tako da ih ne mora ponovo preuzimati pri svakoj poseti.
Podešavanje kesha po tipu fajla
Koristite mod_expires za kontrolu koliko dugo brauzeri kesiraju različite tipove fajlova:
- Slike (jpg, png, gif, svg, webp): 1 godina - slike se retko menjaju.
- CSS i JavaScript fajlovi: 1 mesec - menjaju se češćem od slika ali ne svakodnevno.
- Fontovi (woff, woff2, ttf): 1 godina - fontovi se praktično nikada ne menjaju.
- HTML stranice: Kratko ili bez kesha - sadržaj se često azurira.
- PDF i dokumenti: 1 mesec - ažuriraju se povremeno.
GZIP kompresija
GZIP kompresija smanjuje veličinu fajlova koji se šalju pretraživaču, tipično za 60-80%. Koristite mod_deflate za kompresiju text/html, text/css, application/javascript, application/json, text/xml i sličnih tekstualnih formata. Ne kompresujte slike jer su one već kompresovane.
Custom error stranice
Umesto generičnih serverskih gresaka, možete prikazati prilagođene stranice koje su dizajnirane u skladu sa vašim sajtom i koje pomazu posetiocima da pronađu ono što traže.
- ErrorDocument 404: Stranica se prikazuje kada trazena stranica ne postoji. Uključite pretragu sajta, popularne linkove i kontakt informacije.
- ErrorDocument 403: Prikazuje se kada je pristup zabranjen. Objasnite zašto i ponudite alternativu.
- ErrorDocument 500: Interna greška servera. Objasnite da je problem privremen i ponudite kontakt za podršku.
- ErrorDocument 503: Servis nedostupan. Korisno za prikazivanje stranice održavanja sa očekivanim vremenom povratka.
Korisni snippeti za svakodnevnu upotrebu
Blokiranje IP adrese
Koristite Require direktive (Apache 2.4+) ili Order/Deny (Apache 2.2) za blokiranje specifičnih IP adresa ili opsega. Ovo je korisno za blokiranje poznatih napadaca ili nezdeljenih posetilaca.
Zaštita WordPress admin panela
Ogranicite pristup wp-admin direktorijumu i wp-login.php fajlu na specifične IP adrese. Ovo dramatično smanjuje broj brute-force napada na vaš WordPress sajt. Možete takođe dodati HTTP autentifikaciju kao dodatni sloj zaštite.
Podešavanje PHP vrednosti
Na shared hostingu možete menjati PHP konfiguraciju putem .htaccess-a koristeći php_value i php_flag direktive: upload_max_filesize za veličinu uploada, max_execution_time za timeout skripti, memory_limit za RAM i post_max_size za veličinu POST zahteva.
Preusmeravanje za održavanje
Kada radite na sajtu i želite da posetiocima prikazete stranicu održavanja, koristite RewriteCond da proverite da li je posetioc sa vaše IP adrese (pustite sebe) i preusmerite sve ostale na maintenance.html stranicu. Koristite 302 (privremeno) preusmeravanje, nikada 301.
Ceste greške i rešavanje problema
- 500 Internal Server Error: Najčešća greška. Obično znači sintaksnu grešku u .htaccess-u. Proverite logove servera (Error Log u cPanelu) za detalje. Uklanjajte pravila jedno po jedno dok ne pronađete problematično.
- Redirect petlja: Desava se kada dva pravila preusmeravaju jedno na drugo. Koristite RewriteCond uslove da izbegnete petlju (npr. proverite da li je već HTTPS pre preusmeravanja).
- Pravila ne rade: Proverite da li je mod_rewrite omogućen. Na LiteSpeed serveru, pravila za Apache obično rade, ali mogu postojati razlike. Takođe, proverite da li .htaccess fajl ima pravilne dozvole (644).
- UTF-8 problem: Sačuvajte .htaccess fajl u UTF-8 enkodiranju bez BOM-a (Byte Order Mark). BOM može da uzrokuje neočekivano ponašanje.
Zaključak
.htaccess je mocan alat koji vam daje kontrolu nad vašim sajtom na nivou servera. Od preusmeravanja i bezbednosti, preko keširanja do custom error stranica - pravilna konfiguracija može dramatično poboljšati performanse, bezbednost i SEO vašeg sajta. Uvek pravite bekap pre izmena, testirajte pravilo po pravilo i koristite server logove za dijagnostiku problema.
BeoHosting Tim
10+ godina iskustva — Stručnjaci za web hosting i infrastrukturu
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Poslednje ažurirano: