.htaccess

Hvis du har et webhotel, der er baseret på en Linux-variant og kører med Apache som webserver kan du have glæde af at kende .htacces. Søg på Google for en nærmere forklaring, her er kun de småting jeg samler til mig selv og mit eget brug.

Omdirriger fra www.domæne.dk til domæne.dk

Dit domæne svarer ganske givet på både www.domæne.dk og domæne.dk. Det er ikke altid godt. Derfor bør du beslutte dig for hvilken af de to muligheder du vil have dit site skal svare på. I dette eksempel sikrer vi os at uanset om man skriver adressen med eller uden www lander man på en adresse [b]uden[/b] www.

Kode til .htacess-filen

RewriteEngine On 
RewriteBase /
RewriteCond %{HTTP_HOST} !^domæne.dk$ [NC]
RewriteRule ^(.*)$ http://domæne.dk/$1 [L,R=301]

Forklaring til koden

De første to linier af koden sætter blot Apache (webserveren) i gang med processen.

Den næste linie: RewriteCond %{HTTP_HOST} !^domæne.dk$ siger, at den følgende regel kun gælder når hostnavnet (dvs. domæne-delen i adresselinien) ikke er domæne.dk. Det kommer af udråbstegnet. Hatten - ^ - at hosten skal starte med domæne.dk, mens $-tegnet betyder at hostnavnet skal slutte på domæne.dk. Det betyder, at kun domæne.dk trigger den følgende regel. Sammen med inverteringen - !'et - er resultatet at alt der ikke er domæne.dk vil føre til at der faktisk omdirrigeres til dette domæne. [NC] betyder at host navnet er case senitivt, dvs. at der er forskel på store og små bogstaver (W er ikke de samme som w).

Den næste - og sidste - linie, beskriver hvad der skal ske, når regelen udføres: RewriteRule ^(.*)$ http://domain.dk/$1 [L,R=301].

^(.*)$ er et lille trick. Et punktum er er en erstatning for ét hvilket som helst bogstav, og .* betyder så et vilkårligt antal af hvilke som helst bogstaver. Og det er lige det vi skal bruge, for ^(.*)$ indeholder den URL vi spørger på, bare uden domænet.

Den næste del: http://domain.dk/$1 beskriver målet for rewrite-regelen. $1 indeholder det, der er i .* fra tidligere. Den næste del - [L,R=301] - er også vigtig, fordi den laver en 301 redirect for os automatisk. L betyder at det er den sidste regel, mens R=301 betyder at siden er flyttet permanent. Således fortæller vi alle søgemaskiner, at det kun er domæne.dk der er den gyldige adresse, uanset om der linkes til www.domæne.dk