.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.
HTTP (Hypertext Transfer Protocol) je protokol za prenos hiperteksta oz. standardni protokol za klicanje spletnih strani. Običajno je prikazan v HTML obliki in ga brskalnik zahteva od strežnika. HTTP kot aplikacija temelji na internetni arhitekturi - prenos je privzeto nešifriran prek vrat 80 (prek TCP).
Leta 1994 je bil kot razširitev razvit protokol Hypertext Transfer Protocol Secure oz. HTTPS. Dodatek varno, pomeni, da je vsa komunikacija šifrirana s pomočjo protokola SSL ali TLS. Pri komunikaciji prek protokola HTTPS se namesto običajnih vrat uporabljajo vrata 443.
Razlika med HTTP in HTTPS je torej predvsem v tem, ali se vsi podatki prenašajo na način, ki je zaščiten pred prisluškovanjem, ali jih je mogoče prebrati v navadnem besedilu v omrežju.
HTTPS deluje na enak način kot HTTP. Klasični protokol za prenos hiperteksta temelji na protokolu TCP (Transport Control Protocol) in je osnova za številne aplikacije v internetu. Razlika v primerjavi z različico HTTPS je v tem, da se med TCP in HTTP še vedno uporablja šifriranje prenesenih podatkov z uporabo protokola TLS.
Izmenjava šifrirnih ključev, potrebnih za šifriranje, poteka asimetrično ali po Diffie-Hellmannovi metodi. Pri tem se določi ključ seje, ki ga odjemalec in strežnik lahko uporabljata za komunikacijo v času trajanja seje. Dejanska komunikacija se nadaljuje prek protokola HTTP, vključno z vsemi mehanizmi, predvidenimi v protokolu. Vsi podatki so šifrirani samo na "transportni poti". Zato se danes poleg SSL večinoma uporablja tudi izraz TLS (Transport Layer Security).
S potrdilom se strežnik identificira odjemalcu (npr. brskalniku). Pri povezavah HTTPS je to potrebno, da se lahko vzpostavi varna SSL povezava.
Večino potrdil zagotavlja tako imenovani organ za potrjevanje (CA). To so osrednja telesa, ki veljajo za zaupanja vredna in so zato že shranjena v brskalniku. Vsa potrdila, ki jih izda ta organ, zato samodejno veljajo za zaupanja vredna.
Če je bilo potrdilo ustvarjeno brez sodelovanja overitelja, se v vseh trenutnih brskalnikih prikaže opozorilno sporočilo. Za vzpostavitev povezave mora uporabnik dodati izjemo. Čeprav so podatki šifrirani enako dobro s samopodpisanimi potrdili kot s potrdili, ki jih potrdi overitelj, so tako imenovani napadi "vmesne osebe na poti" lažji.
V konkretnem primeru bi se takšno opozorilno sporočilo ponovno pojavilo. Ko uporabnik potrdi izjemo, se vsi podatki prenesejo prek napadalčeve povezave. Odslej lahko napadalec prebere vse podatke, tudi če so na zunanji strani še vedno šifrirani - ker je uspešno posredoval (man-in-the-middle).
Danes se vse več podatkov prenaša prek interneta. Ne samo nakupi prek spleta, tudi velik del telefonskih klicev se opravi prek spleta zaradi prehoda na Voice-over-IP. Čim več podatkov in finančnih transakcij se opravi na ta način, tem bolj privlačna je kraja podatkov za storilce kaznivih dejanj. K temu je treba dodati še državne akterje, ki spremljajo podatke svojih državljanov ali državljanov iz drugih držav. Poleg tega morajo upravljavci spletnih strani zaradi strogih evropskih zakonov o varstvu podatkov, kot je GDPR, zagotoviti varstvo podatkov.
Zato je stalno HTTPS šifriranje priporočljivo in zaželeno, saj lahko le s takšnimi tehničnimi ukrepi preprečite branje podatkov na internetu. Sodobna spletna stran mora biti standardno dostopno prek protokola HTTPS, ne glede na panogo. To krepi zaupanje uporabnikov, predvsem pa je v skladu s predpisi o varstvu podatkov.