Annonse:

Hvordan omdirigere en webside?

Annonse:

redirect

 

En omdirigering/redirect er når du har en nettside og har fått nytt URL til nettsiden, sendes  besøkende til en annen nettadresse. For eksempel er besøk «website.com/page-a» i nettleseren og du blir omdirigert til «website.com/page-b» i stedet. Dette er svært nyttig hvis vi ønsker å omdirigere en bestemt side til et nytt sted, endre URL-strukturen til et nettsted, fjerne «www.» delen av URL, eller omdirigere brukere til en annen nettside helt (bare for å nevne noen).

La oss si at vi har nettopp flyttet vår hjemmeside og vi ønsker å stenge den gamle. Men vi ønsker ikke alle disse sider fra det gamle nettstedet til å gi en fryktede 404 Not Found. Det vi trenger er for de gamle linker å omdirigere til det samme innholdet på vårt nye nettsted.

Her er vårt eksempel: vi ønsker old-website.com/blog/post å omdirigere til new-website.com/blog/post, sammen med alle de andre innleggene som bruker den samme URL-format. Også det ville være fint om våre omdirigeringer vil rapportere til søkemotorene at denne endringen er permanent, slik at de bør oppdatere deretter.

Så hvordan gjør vi det? Vel, det finnes flere løsninger her vil jeg prøve å forklare alle.

HTML omdirigering

Kanskje den enkleste måten å omdirigere til en annen URL er med Meta Refresh tag. Vi kan plassere denne meta tag inne i <head> på toppen av en HTML-side som dette:

<meta http-equiv="refresh" content="0; URL='http://new-website.com'" />

 

Innholdet attributtet er forsinkelsen før nettleseren omdirigerer til den nye siden, så her har vi satt den til 0 sekunder. Legg merke til at vi ikke trenger å sette en HTTP-statuskode, men det er viktig å dobbeltsjekke rare åpning og lukking av sitatene ovenfor (det finnes sitater i anførselstegn, så de trenger å være ulike typer og matching).

Et tryggere alternativ kan være å omdirigere nettside med Javascript.

Javascript omdirigeringer

Omdirigere til en annen URL med Javascript er ganske enkel, vi bare nødt til å endre plasseringen egenskapen på vinduet objekt:

window.location = «http://new-website.com»;

Javascript er rart men det er mange måter å gjøre dette.

window.location = «http://new-website.com»; window.location.href = «http://new-website.com»; window.location.assign(«http://new-website.com»); window.location.replace(«http://new-website.com»);

For ikke å nevne at du bare kunne bruke plasseringen siden vinduet objektet er underforstått. Eller selv eller toppen.

Med plasseringen objektet kan vi gjøre en masse andre pene ting også som laste siden på nytt eller endre banen og opprinnelsen til URL.

Det er noen problemer her:

Med plasseringen objektet kan vi gjøre en masse andre pene ting også som laste siden på nytt eller endre banen og opprinnelsen til URL.

Det kan være noen problemer her:

  1. Javascript må være aktivert og lastet ned / henrettet for at dette skal fungere i det hele tatt.
  2. Det er ikke klart hvordan søkemotorer reagere på dette.
  3. Det er ingen statuskoder som er involvert, slik at du kan ikke stole informasjon om viderekobling.

Det vi trenger er en server side løsning for å hjelpe oss ved å sende 301 svar til søkemotorer og nettlesere.

Apache Omdirigering

Kanskje den vanligste metoden for å omdirigere en nettside er gjennom å legge særlige regler til en `.htaccess` på en Apache webserver. Vi kan da la hele serveren følge regelen.

`.htaccess` er et dokument som gir oss muligheten til å gi ordre til Apache, at litt av programvare som kjøres på serveren. Å omdirigere brukere til vårt nye nettsted vil vi lage en ny .htaccess fil (eller redigere eksisterende) og legge den til rotkatalogen på det gamle nettstedet. Her er regelen vil vi legge til:

Redirect 301 / http://www.new-website.com

Alle sider som brukeren besøker på det gamle nettstedet vil nå bli omdirigert til den nye. Som du kan se, vi sette HTTP respons kode høyre på forsiden av viderekoblingen regelen.

Det er verdt å nevne at denne typen redirect fungerer bare på Linux-servere med mod_rewrite aktivert, en Apache-modul som lar oss omdirigere forespurte nettadresser på serveren ved å sjekke et visst mønster, og hvis dette mønsteret er funnet, vil det endre anmodning i noen måte. De fleste hosting selskaper har dette aktivert som standard, men du kontakter hosting leverandøren er det beste alternativet hvis det er et problem.

Tilbake til vårt eksempel, hvis vi bruker koden ovenfor så en bruker vil gå til «old-website.com/blog/post» og sendes til «new-website.com» som ikke er veldig brukervennlig, fordi de vil se selve siden de ba om. I stedet vil vi legge til følgende regel i vår `.htaccess` filen for å omdirigere alle disse blogginnleggene til rett sted:

RedirectMatch 301 /blog(.*) http://www.new-website.com$1

Eller kanskje vi ønsker å omdirigere enkeltsider veldig spesielt. Vi kan legge til reglene som dette:

Redirect 301 /page.html http://www.old-website/new-page.html

 

Og for feil kan vi omdirigere brukere til vår 404-side (sannsynligvis stappfullt av ordspill og gifs):

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* 404.html [L] </IfModule>

Først sjekker vi om vi har mod_rewrite modulen er tilgjengelig så vi kan slå den på og, hvis filen eller katalogen ikke finnes, sender vi brukeren til vårt 404-side. Det er liksom godt at innholdet på siden de ser vil være fra 404.html fil mens den forespurte nettadressen vil forbli den samme.

PHP Omdirigering

Med PHP kan vi bruke header funksjon, noe som er ganske enkel:

<?php header(‘Location: http://www.new-website.com’); exit; ?>

Dette må angis før markup eller innholdet i noen annen form, men det er en liten hindring. Som standard er funksjonen sender en 302 redirect respons som forteller alle at innholdet har bare blitt flyttet midlertidig. Vurderer vår spesifikke bruken tilfelle vi må permanent flytte filene over til våre nye nettsider, så vi må gjøre en 301-viderekobling i stedet:

<?php header(‘Location: http://www.new-website.com/’, true, 301); exit(); ?>

Den valgfrie sant parameter ovenfor vil erstatte en tidligere angitt header og 301 på slutten er hvilke endringer svarkoden til den rette.

Annonse:
992 views

Hvordan omdirigere en webside?

Leave a comment

  1. Magnus Handeland sier:

    Dette var ganske nyttig for meg takker 😉