PHP ja brauseri suunamine

20.01.2007  |  Gunnar

PHPOtsingumootorite jaoks on oluline see, kuidas lehekülgedel toimub suunamine. Tavaline suunamine PHP header() funktsiooniga neile eriti ei meeldi, sest tegemist on ajutise suunamisega. Ja mõni robot võib sellist suunamist pidada nii kahtlaseks, et lehekülge, isegi siis, kui see peaks indekseeritud saama, ei näidata otsingutulemuste hulgas või on see kuskil väga tagumises otsas.

Tavaline suunamine, milleks kasutatakse enamasti alltoodud koodi, annab tulemuseks HTTP vastuse 302.

<?php
header('Location: http://aadress/asukoht/');
?>

See vastus robotitele ei meeldi, sest ressurss, mida robot indekseerida tahab, asub tema jaoks ajutiselt muul aadressil. See ongi HTTP vastuse 302 idee. Et suunamistega on roboteid algusaegadel küllaltki palju lollitatud, siis on robotid muudetud suunamiste suhtes väga skeptilisteks. Ja HTTP vastus 302 on üks neist vastustest.

Juhul, kui robot küsib leheküljel mõnda aadressi ja teda suunatakse mujale, siis tuleb robotile ka öelda, et tegemist on jääva suunamisega. Ehk siis, mingu sinna aadressile, kuhu öelda, indekseerigu leht ja kasutagu antud aadressi tulemuste näitamisel. Selleks peab server andma roboti pöördumisele vastuseks 301. HTTP vastuse kood 301 tähendab jäävat suunamist. Probleemi lahendab alltoodud koodijupp.

<?
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://aadress/asukoht/');
?>

Eeltoodu saab kirjutada ka lühemalt. Nimelt saab header() funktsioonile kaasa anda HTTP vastuse koodi. Soovitatav on mõnede brauserite jaoks lisada ka connection header.

<?php
header('Location: http://aadress/asukoht/',true,301);
header('Connection: close');
?>

Kui suunamisi on palju ning on teada aadresside kuju, mida küsitakse ning on teada reeglid, kuidas küsitud aadressid viia vastavusse uute aadressidega, siis on mõttekas suunamised lahendada ära veebiserveri tasemel.

Teise kataloogi suunamisel kontrolli üle, et kataloogi nime lõpus oleks kaldkriips, kui vastav kataloog ka füüsiliselt kõvakettal asub. Muidu võib tekkida olukord, kus server teeb veel ühe suunamise. Seega, http://aadress/kataloog asemel kasuta suunamistes alati http://aadress/kataloog/.

Üks kommentaar sissekandele “PHP ja brauseri suunamine”

  1. Lembit

    Väga põhjalik artikkel sellest, miks teised suunamisviisid on halvad ja 301 ainus “õige”, koos õpetustega 301 suunamiste tegemiseks IIS-is, ASP-ga ja .htaccess-failiga: http://www.accessibility101.org.uk/tips/80.htm

Kommenteeri

sulge
Saada link e-postiga

© DT 2012 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress