Preskoči na sadržaj
BeoHosting
BeoHosting
Tehničko

Vodič za .htaccess fajl

BeoHosting Team··10 min čitanja
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 kontrolišete ponašanje servera na nivou direktorijuma - bez pristupa glavnoj konfiguraciji servera. To ga čini izuzetno korisnim na shared hostingu gdje 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 - provjerite opcije za prikaz skrivenih fajlova. U cPanelu, File Manager ima opciju "Show Hidden Files" u podešavanjima.

Gdje se .htaccess nalazi?

Glavni .htaccess fajl se nalazi u root direktorijumu vašeg sajta (public_html ili htdocs). Pravila u njemu se primjenjuju 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 vrijednost (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 cijelog 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 provjerava 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 bezbjednost sajta i SEO rangiranje. Pravilo koristi RewriteCond da provjeri da li je konekcija već HTTPS (putem HTTPS promjenljive ili X-Forwarded-Proto header-a) i ako nije, vrši 301 preusmeravanje na HTTPS verziju iste URL adrese.

Bezbjednosna 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" sprječ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 promjenljivom 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 provjerava 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 posjetioce. Browser kešira fajlove lokalno tako da ih ne mora ponovo preuzimati pri svakoj posjeti.

Podešavanje kesha po tipu fajla

Koristite mod_expires za kontrolu koliko dugo brauzeri keširaju 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 ažurira.
  • 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

Umjesto generičnih serverskih grešaka, možete prikazati prilagođene stranice koje su dizajnirane u skladu sa vašim sajtom i koje pomažu posjetiocima 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 napadača ili nezdeljenih posjetilaca.

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 vrijednosti

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 posjetiocima prikažete stranicu održavanja, koristite RewriteCond da provjerite da li je posjetioc 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. Provjerite 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 izbjegnete petlju (npr. provjerite da li je već HTTPS pre preusmeravanja).
  • Pravila ne rade: Provjerite da li je mod_rewrite omogućen. Na LiteSpeed serveru, pravila za Apache obično rade, ali mogu postojati razlike. Takođe, provjerite 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 moćan alat koji vam daje kontrolu nad vašim sajtom na nivou servera. Od preusmeravanja i bezbjednosti, preko keširanja do custom error stranica - pravilna konfiguracija može dramatično poboljšati performanse, bezbjednost i SEO vašeg sajta. Uvijek pravite bekap pre izmjena, testirajte pravilo po pravilo i koristite server logove za dijagnostiku problema.

BeoHosting Team

10+ godina iskustva — Stručnjaci za web hosting i infrastrukturu

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Posljednje ažurirano: