Kako da popravite .htaccess fajl Idi do glavnog sadržaja

Kako da popravite .htaccess fajl

.htaccess fajl je jedan od najvažnijih fajlova na web serveru koji hostuje vaš web sajt. U pitanju je fajl koji sadrži set instrukcija koje upravljaju radom vašeg web servera, a putem njega možete da upravljate stvarima kao što su permalinkovi ili da defiinišete određena sigurnosna pravila za vaš web server.

Iako je u pitanju koristan fajl, postoje situacije kada on može da prouzrokuje probleme u radu vašeg sajta, poput neispravnih linkova ili takozvanog belog ekrana smrti (white screen of death). Ne sam fajl, nego pravila u njemu koja mogu da dovedu do takvih ili sličnih problema.

Zato ćemo mi u ovom tekstu objasniti kako da popravite neke od najčešćih problema sa vašim .htaccess fajlom.

Hajde da prvo vidimo šta .htaccess fajl.

Šta je .htaccess fajl?

.htaccess fajl je skriveni konfiguracioni fajl na vašem web serveru, koji sadrži set instrukcija za Apache web server – softver koji u najvećem broju slučajeva pokreće web servere.

Jedna od važnijih funkcija .htaccess fajla jeste kreiranje user-friendly URL-ova za vaše stranice ili blog postove. U pitanju su one razumljive i čitljive URL adrese koje možete da vidite u address baru svog browser-a kada kliknete na neki takav link.

Pored toga, .htaccess fajl možete da koristite da podesite sigurnosne mere poput zaštite password-om određenih direktorijuma, ili da blokirate pristup određenim IP adresama koje želite da onemogućite da pristupe vašem web sajtu.

Ovo su samo neki primeri primene .htaccess fajla. Za detaljnije upoznavanje sa ovim fajlom i načinima na koje možete da ga upotrebite, predlažemo da pročitate Kako podesiti 301 trajnu redirekciju u .htaccess fajlu i cPanel-u ili Kako da sprečite WordPress da izmeni sadržaj .htaccess fajla.

Ukoliko želite detaljnije savete o tome kako da pomoću ovog fajla generalno poboljšate rad svog web sajta, predlažemo da pročitate Kako da pomoću .htaccess fajla unapredite rad svog web sajta.

Sada kada ste se upoznali sa .htaccess fajlom, vreme je da vidimo kako da prepoznate da vaš .htaccess fajl ima problem.

Kako da prepoznate da vaš .htaccess fajl ima problem?

.htaccess može da ima problem iz nekoliko razloga. To može biti zbog konflikta između plugin-a i WordPress-a, odnosno između plug-a i WordPress teme. Takođe, problem može da nastane tako što ste slučajno izmenili sadržaj .htaccess fajla.

Koji god da je razlog, on će pokazati neke simptome na vašem web sajtu. Neki od tih simptoma mogu da budu:

  • prekinuti linkovi – manifestuje se tako što klikom na link korisnik ne bude usmeren nigde, ili samo vidi poruku da postoji problem sa linkom.
  • beli ekran smrti (white screen of death) – umesto sadržaja vašeg sajta, posetilac vidi samo beli ekran, bez ikakvog sadržaja.
  • plugini ne rade ispravno – neki plugini se oslanjaju na specifične instrukcije u .htaccess fajlu da bi ispravno funkcionisali. Ukoliko postoji greška u .htaccess fajlu, plugini neće raditi kako je očekivano.

Hajde sada da vidimo kako sve možete da pristupite .htaccess fajlu da biste ga popravili.

Kako da pristupite .htaccess fajlu?

.htaccess fajl se nalazi u root direktorijumu vašeg web sajta. Možete mu pristupiti putem vašeg cPanel naloga ili putem FTP/SFTP klijenta. Pristup je manje više isti, samo je razlika u alatu sa kojim to radite.

Mi ćemo u ovom tekstu da koristimo ovaj prvi pristup – putem cPanel naloga.

Pored ovog, postoji i alternativni način da pristupite svom .htaccess fajlu. U pitanju je pristup putem plugin-a.

Ukoliko niste spremni da samostalno locirate i editujete svoj .htaccess fajl, objasnićemo kasnije kako to da uradite pomoću plugin-a.

Hajde da vidimo prvo kako da pristupite putem cPanel naloga.

Kako da pristupite .htaccess fajlu preko cPanel naloga?

Ulogujte se na svoj cPanel nalog i pronađite sekciju pod nazivom Files.

Sada kliknite na ikonicu File Manager.

Otvoriće vam se prozor kao na slici ispod.

Sada u stablu foldera sa leve strane pronađite folder pod nazivom public_html. To je root folder (direktorijum) vašeg web sajta. 

Klikom na public_html otvoriće vam se u desnom prozoru sadržaj tog foldera. 

Ukoliko ste ranije radili sa .htaccess fajlom na vašem sajtu, onda ćete ga videti u desnom prozoru.

Podrazumevano ovaj fajl je skriven, pa ako ga do sada niste editovali, onda morate prvo da ga učinite vidljivim.

Podesite da .htaccess fajl bude vidljiv

Da biste podesili da .htaccess postane vidljiv, kliknite na Settings u gornjem desnom uglu prozora. Otvoriće vam se prozor Preferences. Samo čekirajte opciju Show hidden files i kliknite na Ok. Sada će .htaccess fajl postati vidljiv na lokaciji public_html.

Editovanje .htaccess fajla

Sada kada možete da vidite .htaccess fajl, možete i da ga editujete. Editovanje je prilično lako. Dovoljno je da kliknete desnim tasterom miša na ovaj fajl i otvoriće vam se meni iz kog treba da izaberete opciju Edit.

Klikom na dugme Edit otvoriće vam se editor .htaccess fajla.

Sada možete da menjate šta god je potrebno u fajlu.

Primeri najčešćih grešaka koje se mogu pojaviti u .htaccess fajlu

Greška u sintaksi

Greške u sintaksi mogu nastati zbog nepravilne upotrebe simbola ili karaktera u .htaccess fajlu. U slučaju RewriteRule, početna kosa crta (/) može izazvati problem jer se pravilo odnosi na relativne putanje unutar URL-a.

RewriteEngine On
RewriteRule ^/stara-stranica$ /nova-stranica [R=301,L]

Ova linija sadrži grešku jer je kosa crta (/) ispred stara-stranica nepotrebna i može uzrokovati da pravilo ne funkcioniše kako treba.

Rešenje:

RewriteEngine On
RewriteRule ^stara-stranica$ /nova-stranica [R=301,L]

Ispravljanje greške uklanjanjem kose crte na početku pravila omogućava pravilno preusmeravanje stara-stranica na nova-stranica.

Beskonačna petlja preusmeravanja

Beskonačne petlje preusmeravanja nastaju kada dva ili više pravila uzajamno preusmeravaju jedan URL na drugi bez izlaza iz petlje. Ovo može uzrokovati da browser stalno preusmerava korisnika između URL-ova dok se ne dostigne limit preusmeravanja, što dovodi do greške.

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

U ovom primeru, prvo pravilo preusmerava nekisajt.rs na www.nekisajt.rs, dok drugo pravilo preusmerava www.nekisajt.rs nazad na nekisajt.rs. Ovo stvara beskonačnu petlju.

Rešenje:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^nekisajt\.rs [NC]
RewriteRule ^(.*)$ http://www.nekisajt.rs/$1 [L,R=301]
# Ili samo jedno preusmeravanje
# RewriteCond %{HTTP_HOST} ^www\.nekisajt\.rs [NC]
# RewriteRule ^(.*)$ http://nekisajt.rs/$1 [L,R=301]

Održavanjem samo jednog pravila preusmeravanja izbegava se beskonačna petlja. Prvo pravilo preusmerava sve zahteve za nekisajt.rs na www.nekisajt.rs.

Nepravilna početna stranica

DirectoryIndex direktiva definiše koja datoteka će biti prikazana kao početna stranica. Ako datoteke navedene u DirectoryIndex direktivi ne postoje u direktorijumu, server može vratiti grešku 403 Forbidden.

DirectoryIndex index.html index.htm index.php

Ako u direktorijumu nemate index.html ili index.htm, server može vratiti grešku 403, čak i ako imate index.php datoteku.

Korisno: Ukoliko niste uspoznati sa kodovima HTTP grešaka, predlažemo da pročitate naš tekst Najčešće HTTP greške – sve na jednom mestu.

Rešenje:

DirectoryIndex index.php index.html index.htm

Promenom redosleda u DirectoryIndex, server prvo traži index.php kao početnu stranicu. Ako index.php nije prisutan, server će tražiti index.html, a zatim index.htm.

Blokiranje pristupa fajlovima

Pogrešno konfigurisane direktive za blokiranje pristupa fajlovima mogu dovesti do toga da legitimni korisnici ne mogu pristupiti važnim fajlovima na sajtu, ili da osetljivi fajlovi ostanu dostupni neovlašćenim korisnicima.

<Files "config.php">
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
</Files>

Ova konfiguracija može biti problematična jer koristi zastareli redosled Order Deny,Allow koji može biti pogrešno protumačen od strane novijih verzija Apache servera. Takođe, može dopustiti pristup sa neovlašćenih IP adresa.

Rešenje:

<Files "config.php">
Require all denied
Require ip 123.123.123.123
</Files>

Nova sintaksa koristi direktivu Require koja je uvedena u novijim verzijama Apache servera.

Require all denied blokira pristup svim korisnicima.

Require ip 123.123.123.123 dozvoljava pristup samo korisnicima sa specifične IP adrese.

Nepravilna RewriteBase direktiva

Direktiva RewriteBase postavlja osnovnu URL putanju za RewriteRule direktive. Ako je ova direktiva postavljena pogrešno, može dovesti do nepravilnog preusmeravanja URL-ova ili problema sa učitavanjem resursa na sajtu. Ovo se često dešava kada se sajt premesti u poddirektorijum ili se menjaju strukture URL-ova.

RewriteEngine On
RewriteBase /poddirektorijum
RewriteRule ^stara-stranica$ nova-stranica [R=301,L]

U ovom primeru, RewriteBase je postavljena na /poddirektorijum, ali RewriteRule koristi relativne putanje bez uzimanja u obzir osnovnu putanju. Ako fajlovi nisu u navedenom poddirektorijumu ili ako RewriteBase nije pravilno postavljena, pravilo neće funkcionisati ispravno.

Rešenje:

RewriteEngine On
RewriteBase /
RewriteRule ^poddirektorijum/stara-stranica$ poddirektorijum/nova stranica [R=301,L]

Objašnjenje:

Postavljanjem RewriteBase na koren direktorijuma (/) osigurava se da pravila preusmeravanja funkcionišu ispravno.

Korišćenje apsolutne putanje u RewriteRule direktivi omogućava pravilno preusmeravanje URL-ova iz podirektorijuma poddirektorijum.

Pogrešno korišćenje direktive Options

Pogrešno korišćenje Options direktive može dovesti do neispravnog ponašanja sajta, uključujući probleme sa prikazivanjem sadržaja i funkcionalnostima koje zavise od određenih opcija servera.

Options direktiva u .htaccess fajlu definiše različite opcije za direktorijume na serveru, kao što su omogućavanje ili onemogućavanje listanja direktorijuma (Indexes), korišćenje simboličkih linkova (FollowSymLinks), itd.

Pogrešna ili kontradiktorna upotreba ove direktive može dovesti do konflikta i problema sa funkcionisanjem sajta.

Options +Indexes
Options -Indexes

Ovaj primer prikazuje dve Options direktive koje se međusobno isključuju. Prva linija omogućava listanje direktorijuma, dok druga linija odmah zatim onemogućava listanje direktorijuma. Ovakva kontradiktorna upotreba može zbuniti server i dovesti do neispravnog ponašanja sajta.

Rešenje:

Options -Indexes

Da biste izbegli konflikte i osigurali ispravno funkcionisanje sajta, koristite samo jednu Options direktivu sa jasnom i odgovarajućom vrednošću. U ovom primeru, Options -Indexes onemogućava listanje direktorijuma, što može povećati sigurnost sajta i sprečiti neovlašćeni pristup datotekama unutar direktorijuma.

Kako da pristupite .htaccess fajlu pomoću plugin-a

Ukoliko iz bilo kog razloga ne možete da pristupite svom cPanel nalogu ili ne želite da sami pristupate fajlovima unutar root foldera vašeg sajta, .htaccess fajlu možete da pristupite i pomoću plugin-a.

Jedan od najpopularnijih plugin-a koji između ostalog može da posluži za editovanje .htaccess fajla jeste All In One SEO (AIOSEO). Ovaj odličan plugin smo već predstavili u nekoliko tekstova na našem blogu, pa preporučujemo da ih svakako pročitate pre nego što počnete sa korišćenjem ovog sjajnog plugin-a.

Ukoliko još uvek ne koristite ovaj plugin, možete da ga preuzmete i aktivirate iz WordPress repozitorijuma plugina. 

Nakon aktivacije, u admin dashboard-u svog WordPress sajta pronađite opciju All in One SEO → Tools, a zatim prebacite na tab .htaccess Editor.

Otvoriće vam se prozor sa sadržajem .htaccess fajla, gde sada možete da editujete sve što želite unutar fajla. Nakon što završite sa editovanje, kliknite na dugme Save Changes kako biste sačuvali sve izmene.

Time ste ujedno završili editovanje svog .htaccess fajla.

Zaključak

Kao što ste videli, greške u .htaccess fajlu mogu dovesti do ozbiljnih problema, poput neispravnih linkova ili belog ekrana. Zato je razumevanje i pravilno korišćenje .htaccess fajla od suštinske važnosti za funkcionisanje vašeg sajta.

Ako želite detaljnije savete o tome kako da pomoću ovog fajla unapredite rad svog sajta, predlažemo da pročitate i preostale tekstove na ovu temu, koje smo već naveli u tekstu.

Nenad Mihajlović


Ostavite odgovor