.htaccess (hypertext access) je konfiguracijska datoteka, ki jo uporabljajo spletni strežniki Apache za nastavitev različnih funkcij na ravni posameznih map.
Z .htaccess datoteko lahko spreminjate nastavitve svojega spletnega mesta, ne da bi morali spreminjati glavno konfiguracijo strežnika.
Ta "ločena konfiguracijska datoteka" vam omogoča prilagajanje nastavitev za posamezne mape na vašem spletnem mestu. Predstavljajte si jo kot nekakšen daljinski upravljalnik za vaš del spletnega strežnika.
Mnogi priljubljeni sistemi za upravljanje vsebin, kot je WordPress, uporabljajo .htaccess za različne funkcije, od preusmeritev do zaščite map. Čeprav je .htaccess skrita datoteka (zato tista pika pred imenom), ima ogromno moč pri določanju, kako se vaša spletna stran obnaša.
Z njo lahko nastavite preusmeritve, izboljšate varnost, omogočite boljše predpomnjenje in rešite številne druge izzive. Spoznavanje te datoteke vam lahko prihrani čas in odpre nove možnosti za optimizacijo vašega spletnega mesta.
.htaccess datoteke so preprosto besedilne datoteke, ki jih Apache prebere ob vsakem zahtevku. Te datoteke vsebujejo konfiguracijske direktive, ki vplivajo na imenik, v katerem so, in vse njegove podimenije.
Ko obiščete spletno stran, Apache začne iskati .htaccess datoteke v korenskem imeniku. Potem nadaljuje po poti do zahtevane datoteke.
Vsaka najdena .htaccess datoteka prepiše prejšnje nastavitve. Pravila v teh datotekah se izvajajo takoj, brez potrebe po ponovnem zagonu strežnika.
To je velika prednost, še posebej če nimate administratorskega dostopa do glavne konfiguracije strežnika. Urednike FTP lahko uporabite za ustvarjanje in urejanje teh datotek.
Samo pomnite, da se ime datoteke začne s piko, kar pomeni, da je v mnogih sistemih skrita.
Z .htaccess lahko upravljate različne vidike svojega strežnika. Najpogostejše uporabe vključujejo preusmeritve, kontrolo dostopa in URL prepisovanje.
# Preusmeritev iz HTTP na HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
.htaccess datoteke vam omogočajo tudi zaščito map z geslom, prilagajanje napak in konfiguracijo indeksnih strani. Lahko določite tudi MIME tipe za nestandardne datoteke ali nastavite kompresijo za hitrejše nalaganje.
Čeprav so te datoteke zelo koristne, jih uporabljajte previdno. Napačna konfiguracija lahko povzroči napake strežnika.
Vedno naredite varnostno kopijo pred večjimi spremembami in preverite delovanje po vsaki spremembi.
Ena največjih prednosti .htaccess datotek je njihova prilagodljivost na ravni imenika. Vsak imenik v vaši spletni strukturi lahko vsebuje svojo .htaccess datoteko.
To vam omogoča različne nastavitve za različne dele vaše spletne strani. Na primer, lahko imate posebna pravila za administratorski del strani in drugačna za javni del.
/www/ # Glavna .htaccess datoteka
/www/admin/ # .htaccess z zaščito z geslom
/www/images/ # .htaccess za nastavitve predpomnjenja
Nastavitve v podimenikih imajo prednost pred nastavitvami v nadrejenih imenikih. Ta kaskadni sistem vam omogoča, da imate splošna pravila na vrhu in bolj specifična pravila v podimenikih.
V okoljih z VirtualHost nastavitvami lahko .htaccess uporabite za fino prilagajanje posameznih virtualnih gostiteljev brez spreminjanja glavne konfiguracije strežnika.
Datoteka .htaccess je močno orodje za upravljanje nastavitev Apache strežnika na ravni posameznega direktorija. Z naprednimi nastavitvami lahko izboljšate varnost, optimizirate delovanje in rešujete pogoste težave na vaši spletni strani.
Preusmeritve so ključne za ohranjanje SEO vrednosti pri spremembah strukture spletne strani. Za trajno preusmeritev uporabite 301 redirect:
Redirect 301 /stara-stran.html https://vasa-domena.si/nova-stran.html
Naprednejša orodja najdete v modulu mod_rewrite, ki omogoča kompleksne preusmeritve:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^stara-domena.si$ [NC]
RewriteRule ^(.*)$ https://nova-domena.si/$1 [R=301,L]
Z RewriteRule lahko spremenite URL naslove brez dejanskega preusmerjanja. To je odlično za čiste URL naslove:
RewriteRule ^izdelki/([0-9]+)$ product.php?id=$1 [NC,L]
S tem obiskovalec vidi "/izdelki/123" namesto "product.php?id=123". RewriteCond vam omogoča, da preusmeritev izvedete samo pod določenimi pogoji.
Občutljive dele spletne strani lahko zaščitite z geslom. Najprej ustvarite .htpasswd datoteko z uporabniškim imenom in geslom:
htpasswd -c /pot/do/.htpasswd uporabnik
Nato v .htaccess nastavite zaščito:
AuthName "Zaščiteno območje"
AuthType Basic
AuthUserFile /pot/do/.htpasswd
Require valid-user
Za omejitev dostopa glede na IP naslov lahko uporabite:
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24
Allow from 10.0.0.5
Ta nastavitev dovoli dostop samo iz lokalnega omrežja in določenega IP naslova. Za zaščito posebej občutljivih datotek lahko kombinirate obe metodi.
Za varno povezavo je ključna uporaba SSL/HTTPS. V .htaccess lahko prisilite uporabo HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Dodate lahko tudi varnostne glave:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Te nastavitve povečajo varnost vaše strani z omejevanjem določenih ranljivosti. HSTS glava zagotavlja, da brskalniki vedno uporabljajo HTTPS povezavo.
Prilagodite lahko strani, ki se prikažejo ob napakah:
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
Za boljšo uporabniško izkušnjo ustvarite prijazne strani z napakami.
Dodate lahko tudi preusmeritve za pogoste napake:
# Preusmeri napačno zapisane URL naslove
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Ta pravila pomagajo uporabnikom najti vsebino tudi ob napačnem vnosu URL naslova.
Če želite hitro diagnosticirati težave, omogočite zapisovanje napak:
php_flag log_errors on
php_value error_log /pot/do/error.log
Tako boste lažje odkrili in odpravili napake na svoji spletni strani.