Miten verkkotunnusten uudelleenohjaukset toimivat?
Verkkotunnusten tai aliverkkotunnusten ohjaamiseen verkkosivustosi toiseen osioon tai ulkoiseen osoitteeseen on tarjolla monia vaihtoehtoja. Uudelleenohjaukset toteutetaan usein .htaccess-tiedoston, PHP-skriptin, HTML-metatunnisteiden ja JavaScriptin avulla.
Mihin verkkotunnusten uudelleenohjauksia käytetään?
Uudelleenohjauksia käytetään ilmoittamaan palvelimille, että sivuston sisältö on siirretty yhdestä URL-osoitteesta toiseen. Tämä on tarpeen, kun alkuperäinen verkko-osoite on saapuvan linkin kohde, on tallennettu käyttäjän tietokoneelle tai voi näkyä näkyvällä sijalla hakukoneiden tulossivuilla (SERP). Tällöin uudelleenohjaus ilmoittaa selaimelle tai hakurobotille, että sisältö on siirretty, ja tarjoaa käyttäjälle linkin uuteen osoitteeseen. Ilman uudelleenohjauksia verkkosivuston kävijät näkisivät etsimänsä sivuston sijasta 404-virhesivun.
Tämä on asia, jota erityisesti kaupalliset verkkoprojektit haluavat välttää. Verkkokaupoissa on jatkuvasti muuttuva tuotevalikoima, joka esitetään useilla eri verkkosivuilla. Kun tuotetta ei enää ole saatavilla, potentiaaliset asiakkaat ohjataan sivulle, jolla on esillä vastaavia tuotteita. Näin voit ohjata kävijävirtoja tehokkaasti ja minimoida poistumisprosentin.
Kun määrität verkkotunnuksen uudelleenohjauksen, voit tarjota saman sisällön myös eri verkko-osoitteissa. Kaikki vaihtoehtoiset osoitteet ohjataan yksinkertaisesti halutulle verkkotunnukselle riippumatta siitä, minkä URL-osoitteen tai polun käyttäjät syöttävät.
Mitä erilaisia verkkotunnusten uudelleenohjauksia on olemassa?
Yleensä erotetaan toisistaan asiakaspuolen ja palvelinpuolen uudelleenohjaukset. Palvelinpuolen verkkotunnusuudelleenohjauksissa vastaavat HTTP-tilakoodit välitetään käyttäjäohjelmille (selaimille tai hakuroboteille). Asiakaspuolen uudelleenohjauksissa tilanne on hieman erilainen. Ne toteutetaan ilman minkäänlaista vastausta, eli tilakoodeja ei lähetetä. Tästä syystä kaikki käyttäjäohjelmat eivät tue jälkimmäistä vaihtoehtoa. Tämä haitta voi joskus johtaa tilanteisiin, joissa kävijät jäävät alkuperäiselle sivulle eivätkä siirry minnekään. Tällaiset haitat ovat syy siihen, että palvelinpuolen vaihtoehto on usein suositeltava uudelleenohjauksissa. Asiakaspuolen ratkaisuja tulisi käyttää vain silloin, kun palvelinpuolen verkkotunnuksen uudelleenohjaukset on suljettu pois teknisistä syistä.
Toinen verkkotunnuksen uudelleenohjausmuoto on läpinäkyvä tai näkymätön uudelleenohjaus. Tässä uudelleenohjausmuodossa URL-osoite ei muutu. Peittävien verkkotunnusohjauksien tapauksessa käyttäjälle näkyvä URL-osoite ei muutu, vaikka asiakas on ohjattu toiselle verkkotunnukselle ja hänelle näytetään toisen verkkosivun sisältöä. Koska tämäntyyppinen ohjaus voi kuitenkin aiheuttaa ongelmia indeksoinnissa ja URL-osoitteen näyttämisessä selaimessa, sitä ei suositella, ellei tiettyjä rajoituksia ole asetettu.
Haluatko määrittää verkkotunnuksen uudelleenohjauksen? Seuraavasta IONOS-tukikeskuksen artikkelista löydät vaiheittaiset ohjeet verkkotunnuksen uudelleenohjaamiseen toiseen verkkotunnukseen.
Palvelinpuolen uudelleenohjaukset
Useimmissa tapauksissa palvelinpuolen verkkotunnusohjaukset toteutetaan .htaccess-määritystiedoston tai PHP-skriptin avulla. Näiden menetelmien avulla voidaan määrittää tapauskohtaisesti, mikä HTTP-tilakoodi käyttäjän selaimelle näytetään. Näin verkkosivustojen ylläpitäjät voivat merkitä verkkotunnusohjaukset joko pysyviksi tai väliaikaisiksi. Tähän käytetään HTTP-tilakoodeja 301 ja 302.
- 301 – Siirretty pysyvästi: Pyydetty resurssi on nyt pysyvästi saatavilla uudelleenohjaus-URL:n alla. Vanha URL ei ole enää voimassa tästä lähtien. Tässä tapauksessa tarvitaan 301-uudelleenohjaus.
- 302 – Siirretty väliaikaisesti: Pyydetty resurssi on saatavilla uudelleenohjaus-URL:n alla. Toisin kuin 301-koodin tapauksessa, alkuperäinen URL pysyy edelleen voimassa.
Jos HTTP-tilakoodia ei ole nimenomaisesti määritelty, verkkopalvelin lähettää tilakoodin 302 palvelinpuolen uudelleenohjauksen yhteydessä. Tämä ei ole aina välttämätöntä, joten on suositeltavaa syöttää haluttu tilakoodi manuaalisesti jokaiselle uudelleenohjaukselle, sillä näin voidaan vähentää indeksointivirheiden, kuten URL-kaappauksen, riskiä. Toisin kuin 301-uudelleenohjaus, 302-tilakoodi ilmoittaa hakuroboteille, että alkuperäinen URL-osoite tulee säilyttää indeksoituna. Jos uudelleenohjauksen on tarkoitus olla pysyvä, uudelleenohjausosoite kilpailee uudelleenohjauksen kohteen kanssa hakukoneen indeksissä.
.htaccess-uudelleenohjaus
.htaccess on Apache-verkkopalvelimille tarkoitettu asetustiedosto. Sitä käytetään ylittämään palvelimen yleiset asetukset hakemistotasolla. Tämän tiedoston avulla verkkosivustojen ylläpitäjät voivat määrittää hakemistokohtaisia asetuksia verkkotunnuksille ja niiden alihakemistoille. Yksi .htaccess-tiedoston toiminnoista on yksittäisten osoitteiden palvelinpuoleinen uudelleenohjaus muihin URL-osoitteisiin.
Voit määrittää verkkotunnuksen uudelleenohjauksen .htaccess-tiedoston koodin avulla. Kun seuraavan koodin sisältävä .htaccess-tiedosto on sijoitettu päähakemistoihin, alkuperäistä verkkotunnusta koskevat pyynnöt ohjataan palvelinpuolella verkkotunnukseen www.example.com:
Redirect 301 / http://www.example.com/apacheconfTämä koodirivi alkaa numerolla redirect 301 ja määrittää, minkä HTTP-tilakoodin palvelimen tulee palauttaa. Sen jälkeen seuraa polku sisältöön, johon uudelleenohjaus tehdään. Yllä olevassa esimerkissä koko sisältö ohjataan uudelleen. Viimeinen vaihe suoritetaan, kun koko kohde-URL ohjataan käyttäjäagentin URL-osoitteeseen: http://www.example.com.
Tämän menetelmän avulla yksittäisiä tiedostoja voidaan ohjata uudelleen. Seuraava koodi esittää .htaccess-tiedoston avulla toteutetun uudelleenohjauksen yhdeltä verkkosivustolta toiselle:
Redirect 301 /directory/example-document.html http://www.example.com/example.htmlapacheconfKun HTTP-tilakoodi 301 on määritetty, määritetään tiedoston hakemistopolku, joka ohjataan pysyvästi uudelleen (/directory/example-document.html), sekä uudelleenohjaus-URL (http://www.example.com/example.html).
Tässä on esimerkki siitä, miltä pysyvä uudelleenohjaus näyttäisi Apache-palvelimella, jossa mod_rewrite-moduuli on käytössä:
RewriteEngine On
RewriteRule ^directory/example-document.html$ http://www.example.com/example.html [L,R=301]apacheconfKoodirivillä 01 aktivoidaan Apache-verkkopalvelimen mod_rewrite-moduuli komennolla RewriteEngine On. Tämän jälkeen on rivi RewriteRule, jossa on uudelleenohjausmääritystiedoston polku ja kohdeosoite. Caret- ja dollarimerkit merkitsevät polun alkua ja loppua, ja L merkitsee kyseisen pyynnön viimeistä mod_rewrite-sääntöä. R=301 välittää HTTP-tilakoodin 301.
Kun määrität verkkotunnuksen uudelleenohjausta .htaccess-tiedoston avulla, on tärkeää muistaa, että virheelliset merkinnät voivat aiheuttaa vakavia seurauksia verkkosivuston toiminnalle. Koska muutokset astuvat voimaan heti, kun olet tallentanut .htaccess-tiedoston, asetukset on aina testattava huolellisesti.
PHP-uudelleenohjaukset
Verkkotunnuksen uudelleenohjaus voidaan toteuttaa paitsi .htaccess-tiedoston asetusten kautta myös PHP-skriptin komennolla (esim. *index.php-*tiedostossa). Seuraava koodi esittää pysyvän uudelleenohjauksen kuvitteelliseen kohde-URL-osoitteeseen www.example.com:
<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.example.com");
exit;
?>phpKun uudelleenohjaus tapahtuu PHP-skriptin kautta, haluttu HTTP-tilakoodi määritetään koodin toisella rivillä olevalla header. Tässä esimerkissä suoritetaan pysyvä 301-uudelleenohjaus. Koska palvelinpuolen uudelleenohjaukset toteutetaan yleensä väliaikaisesti, pysyvien uudelleenohjauksien suorittamiseksi 301-tilakoodilla on ryhdyttävä aktiivisiin toimenpiteisiin. Pysyvissä uudelleenohjauksissa myös uudelleenohjauksen kohdeosoite rekisteröidään headerllä. Tässä esimerkissä uudelleenohjaus menee osoitteeseen http://www.example.com. Koodin rivillä 04 oleva exit lopettaa skriptin ja estää seuraavan koodirivin suorittamisen. Jotta uudelleenohjaukset toimisivat PHP-skriptin kautta, koodilohkon on oltava HTML-sivun alussa. Tämä estää palvelinta siirtämästä HTML-sisältöä uudelleenohjaussivulle.
Asiakaspuolen uudelleenohjaukset
Jos palvelinpuolen verkkotunnuksen uudelleenohjaus ei ole teknisistä syistä mahdollista, verkkosivustojen ylläpitäjillä on mahdollisuus käyttää asiakaspuolen ratkaisuja. Tähän tarkoitukseen voidaan käyttää HTML-metatagiä refresh sekä JavaScriptiä. Asiakaspuolen uudelleenohjauksien haittapuolena on se, että palvelimet eivät lähetä HTTP-tilakoodeja pyynnön esittäneille selaimille tai hakuroboteille, minkä vuoksi niille ei ilmoiteta nimenomaisesti uudelleenohjauksesta. Lisäksi kaikki käyttäjäagentit eivät tue asiakaspuolen uudelleenohjauksia, mikä tarkoittaa, että on olemassa riski, että kaikkia verkkosivuston kävijöitä ei ohjata uudelleen.
Asiakaspuolen uudelleenohjaukset vaikuttavat kielteisesti hakukoneiden indeksointiin. Asiakaspuolen uudelleenohjauksissa ei tapahdu nimenomaista poissulkemista indeksoinnista HTTP-tilakoodin 301 avulla. Tämä voi johtaa siihen, että uudelleenohjausverkkotunnukset kilpailevat kohdeverkkotunnusten kanssa hakukoneiden sijoituksissa. Toisin kuin palvelinpuolen uudelleenohjaukset, jotka pysyvät käyttäjille suurelta osin näkymättöminä, asiakaspuolen uudelleenohjauksiin liittyy aina viiveitä, jotka jotkut käyttäjät saattavat huomata.
Uudelleenohjaus HTML-koodin meta refresh -komennon avulla
HTML-metauudelleenohjaukset toteutetaan meta-tunnisteiden avulla, joissa on attribuutti http-equiv. Tähän tarvitaan vain yksinkertainen HTML-tiedosto ja vastaava tunniste sivun otsikkokoodissa uudelleenohjauksen luomiseksi. Jotta verkkosivustosi kävijät saavat tiedon uudelleenohjauksesta, HTML-tiedostoon tulisi lisätä vastaava ilmoitus. Tyypillisiä esimerkkejä ovat rivit kuten ”Odota hetki. Sinut ohjataan…”. Yksinkertainen verkkotunnuksen uudelleenohjaus HTML-metauudistuksen avulla näyttää tältä:
<meta http-equiv="refresh" content="10; url=http://www.example.com/">htmlAsiakasta pyydetään ohjaamaan verkkotunnus uudelleen meta-tagin avulla http-equiv="refresh". Tämä voidaan määrittää content-attribuutin avulla. Esimerkissä käyttäjät ohjataan kohdeverkkotunnukseen www.example.com kymmenen sekunnin kuluttua.
JavaScript-uudelleenohjaukset
JavaScript tarjoaa helpon tavan toteuttaa verkkotunnuksen uudelleenohjauksia asiakaspuolella. Kuten meta-tagin refresh kohdalla, myös JavaScript-uudelleenohjauksia tulisi kuitenkin käyttää vain tapauskohtaisesti, sillä kaikki selaimet eivät tue tätä skriptikieltä turvallisuussyistä. JavaScript voi myös aiheuttaa ongelmia hakuroboteille ja käyttäjille, joilla on NoScript-laajennus käytössä. Tässä on esimerkki JavaScript-koodista verkkotunnuksen uudelleenohjausta varten:
<script>
window.location.replace('http://www.example.com');
</script>htmlTärkein asia tässä on koodin kolmas rivi. Esimerkkikoodissa muuttujaa window.location käytetään viittaamaan nykyiseen verkkosivuston osoitteeseen. Komento replace ohjeistaa selaimen ohjaamaan käyttäjän suluissa olevaan kohdeverkkotunnukseen: www.example.com.