Jeg registrerte akkurat et nytt domenenavn for denne siden, og da trengte jeg å videresende besøkende fra den gamle siden til den nye URLen. Dette er faktisk ganske enkelt siden jeg har en Linux server (CentOS faktisk) med Apache. Jeg ønsket å fortelle browseren at siden er permanent flyttet til den nye siden, og dette er spesielt viktig for søkemotorer som Google og MSN søk. I korte trekk fortelle Apache til browsere og søkemotorer “den nye adressen til denne siden er: www.sbarmen.no”.
For å implementere dette brukte jeg en RewriteMod kommando i .htaccess filen som ligger på toppnivået til hjemmesiden. Det jeg ønsket å gjøre var å omskrive adresser som følger:
http://stian.barmen.nu ELLER http://www.stian.barmen.nu TIL http://www.sbarmen.no.
Enkelt ikke sant? Jo det er det faktisk. Bare åpne .htaccess filen og legg tiddse linjene til toppen av filen:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.sbarmen.no$ [NC]
RewriteRule ^(.*)$ http://www.sbarmen.no/$1 [L,R=301]
Den første linjen forteller Apache at den må sjekke at rewrite motoren er slått på. Du kunne også startet med <IfModule mod_rewrite.c> samt avsluttet med <IfModule> og da ville du ikke fått feilmeldinger om modulen mod_rewrite ikke var lastet, men stort sett så er denne lastet i de fleste oppsett av Apache.
Så, videre forklaring. RewriteBase forteller at Apache skal omskrive for alle URLer på denne siden. Den neste linjen, RewriteCond, sjekker at domenenavnet som er blitt bedt om ikke er www.sbarmen.no (utropstegnet betyr IKKE) og [NC] betyr uavhengig av store eller små bokstaver. Dersom du allerede ber om www.sbarmen.no så kan du jo bare hoppe over dette for da er jo alt ok, ikke sant? Til sist er det omskrivingen som sier at alt etter domenebiten ^(.*)$ skal samles inn, og legges på et nytt domenenavn http://www.sbarmen.no/ og så legger du til verdiene som du samlet inn med $1. Fordelen med dette er at alle undersider også vil virke siden den tas med over i den nye linken.
Til slutt er det L,R=301 som betyr at vi forteller Apache at nå er vi ferdige med denne omskrivingen (L), endringen er en permanent flytting (R=301) og du kan sende dette til nettleseren. Neste gang dersom du linker direkte til www.sbarmen.no så vil alt dette hoppes over 🙂
Det var jo en ganske nerdete måte å fortelle at jeg har flytte denne siden til et nytt domenenavn, så takk for at du leste 🙂
Kilder:
Apache Mod_Rewrite: http://httpd.apache.org/docs/current/mod/mod_rewrite.html
Wikipedia HTTP Redirects: http://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx
Recent Comments