sfnet.viestinta.www - VUKK
Vastauksia useimmin kysyttyihin kysymyksiin v2.06

sisällysluettelo - Edellinen: "Miten teen salasanasuojauksen sivuilleni?" - Seuraava: "Miten kerron palvelimelle tiedostojen Mime-tyypin?"

Miten saan selaimen ohjautumaan automaattisesti uudelle sivulle?

Palvelimen tulee lähettää selaimelle Location-otsake, jolloin selain tietää hakea sivun uudesta osoitteesta. Apache-palvelimella uudelleenohjauksen toteutus onnistuu helpoiten .htaccess-tiedostoa muokkaamalla. Esimerkiksi rivi

RedirectMatch permanent .* http://www.heikniemi.net/muutto.html

... saa aikaan sen, että kaikki sivupyynnöt ohjautuvat yhteen tiedostoon. Tämä auttaa, jos vaikkapa suljet sivusi ja haluat tiedottaa siitä hallitusti yhdellä sivulla. Toisaalta jos sivusi ovat muuttaneet palvelimelta toiselle, on yleensä tarkoituksenmukaisempaa vain vaihtaa osoitteen alkuosaa. Silloin auttavat seuraavanlaiset rivit:

Redirect permanent /~jth http://www.heikniemi.net
Redirect permanent /%7ejth http://www.heikniemi.net
Redirect permanent /%7Ejth http://www.heikniemi.net

Tällöin esim. tiedostoa /~jth/opas.html kaipaava selain päätyisi tiedostoon http://www.heikniemi.net/opas.html. Kolme riviä tarvitaan siksi, että tilden (~) voi kirjoittaa kolmella eri tavalla. Tarkemmin redirectien käyttöä opastaa Apachen FAQ.

Tarvittaessa uudelleenohjauksen voi tehdä myös CGI-ohjelmasta kirjoittamalla location-otsakkeen käsin. Esimerkiksi seuraava Perl-skripti ohjaa käyttäjän Googlen etusivulle:

#!/usr/local/bin/perl

print "Status: 301 Moved\r\n" .
      "Location: http://www.google.com/\r\n" .
      "\r\n";
				

Huomaa, että edelliset esimerkit lähettävät käyttäjälle HTTP-vastekoodin 301, joka tarkoittaa sivujen pysyvää siirtymistä. Jos osoitteenmuutos on tilapäistä lajia, voit käyttää HTTP-palautuskoodia 302. Tämä onnistuu jättämällä Redirect-määritteistä permanent-sana pois.