Apache .htaccess-fil

Fra LiavaagWiki
Hopp til navigering Hopp til søk

Introduksjon om .htaccess

Apaches konfigurasjonsfil .htaccess (hypertext access) tilpasser innstillingene til Apache-baserte webservere. «.htaccess» er filnavnet i sin helhet, det er ikke en filekstensjon. Punktumet foran filnavnet gjør det til en skjult fil i Unix-baserte miljøer (Wikipedia, 2018). Filen trer i kraft når den plasseres i en hvilken som helst mappe, som deretter lastes inn via Apache Web Server-programvaren. Filen får virkning i hele mappen den er plassert i, og alle filene og undermappene i den angitte mappen. Et nettsted kan derfor ha mer enn én .htaccess-fil.

Noen ulemper med .htaccess

Sikkerhetsmessig kan det å tillate individuelle brukere å endre konfigurasjonen til en server forårsake sikkerhetsproblemer hvis de ikke er konfigurert riktig. Generelt bør .htaccess-filer kun brukes når du ikke har tilgang til konfigurasjonsfilen i hovedserveren. Det er en vanlig misforståelse at brukerautentisering alltid skal gjøres i .htaccess-filer, og i den senere tid er det en utstrakt misforståelse at mod_rewrite-direktiver må gå via .htaccess-filer (The Apache Software Foundation, 2018). Dette er ganske enkelt ikke tilfelle. Du kan sette brukerautentiseringskonfigurasjoner i hovedserverkonfigurasjonen, noe som faktisk er den foretrukne måten, på samme måte som at mod_rewrite-direktiver fungerer bedre, i mange henseender, i hovedserverkonfigurasjonen (The Apache Software Foundation, 2018).

Noen fordeler med .htaccess

En fordel med .htaccess-filer er at de gir umiddelbare endringer, fordi de leses på hver forespørsel. Hovedkonfigurasjonsfilen krever derimot at serveren startes på nytt for at de nye innstillingene skal tre i kraft. Dessuten kan man på web-servere med mange brukere tillate individualisering. Det vil si at ISP og Webhoteller kan tillate individuelle brukere muligheten til å endre deres nettstedskonfigurasjon. En av de mest vanlige måtene å en bruke .htaccess-fil på er å omdirigere webtrafikk med http svarstatuskoden «301 Moved Permanently». Koden betyr at URLen har flyttet permanent til en annen adresse. Denne formen for omadressering er bedre for søkemotoroptimalisering enn en midlertidig omadressering, fordi den overfører innkommende koblinger fra det omdirigerte domenet til den nye, noe som hjelper nettstedet å opprettholde sine søkerangeringer, samt forhindre nedgang i søketrafikk (Bernazzani, 2016). Et eksempel på dette er å omdirigere ikke-www til www, og HTTP til HTTPS.

Et eksempel på Apache omdirigering med .htaccess

Den økende bruken av HTTPS som tilkoblingsprotokoll for nettsteder har skapt nye behov for å omdirigere HTTP til HTTPS. Tilsvarende er omdirigering av ikke-www til www vertsnavn (eller vice versa) blitt vanlig. Som standard kan du få tilgang til nettstedet ditt både med og uten www. Siden Google straffer dette på grunn av dupliserte innholds-årsaker, bør tilgangen begrenses til enten www.eksempel.com eller eksempel.com. For å konfigurere omadressering legger man til en viderekoblingsregel, enten til Apache-konfigurasjonsfilen hvis du har tilgang til den, eller til .htaccess i roten til nettstedet ditt. Følgende regel vil omdirigere alle www til ikke-www, og alle http til HTTPS:

RewriteEngine On

RewriteCond %{HTTPS} off [OR]

RewriteCond %{HTTP_HOST} ^www\. [NC]

RewriteRule ^ https://example.com%{REQUEST_URI} [L,NE,R=301]

Koden er hentet fra Simone 's Blog (Carletti, 2016). Den første linjen kreves for å kunne utføre omadresseringen. Den starter Apaches «runtime rewriting engine». De to neste linjene er omadresseringsbetingelsene som brukes til å avgjøre om forespørselen skal omdirigeres (Carletti, 2016). Den første betingelsen avgjør om forespørselen bruker en ikke-HTTPS-URL, mens den andre avgjør om forespørselen bruker www-nettadresse. «RewriteRule» er hjertet av omadresseringen, og forteller Apache å omdirigere enhver forespørsel til ny nettadresse (Carletti, 2016). Flagget «L» slutter å behandle andre regler, og omdirigerer umiddelbart. «NE» betyr at Apache ikke skal unnslippe spesialtegn, og «R = 301» bruker HTTP-statuskode 301. For flere eksempler kan du besøke forumet på Liavaag.org.

Kilder

Videre lesning

Liavaag.org