jak se to d∞lß
Mo╛nosti p°esm∞rovßnφ strßnky - Jenom odkaz - P°esm∞rovßnφ meta tagem - P°esm∞rovßnφ javascriptem - P°esm∞rovßnφ na stran∞ serveru - ProΦ strßnky p°esm∞rovßvat - P°esm∞rovßnφ na jin² typ souboru - Co na to vyhledßvaΦe - Beznad∞jn² dotaz - P°esun domΘny
Mo╛nß se divφte, proΦ zmi≥uji p°esm∞rovßnφ odkazem, na kter² si u╛ivatel musφ kliknout. Je to ale nejmΘn∞ riskantnφ a u╛ivatel mß dobr² pocit, ╛e mß prohlφ╛eΦ pln∞ pod kontrolou. Prost∞ tam napi╣te "strßnka je na novΘ adrese tΘ a tΘ + odkaz". Nenφ co zkazit.
Nejoblφben∞j╣φ zp∙sob, proto╛e se nemusφ skriptovat a dß se vlo╛it rovnou do starΘ strßnky:
<meta http-equiv="refresh" content="4;url=http://jina_adresa.cz/cokoliv">
╚φslo 4 vyjad°uje poΦet sekund, po kolika se ud∞lß p°esm∞rovßnφ. Adresa url na p°esm∞rovßnφ m∙╛e b²t i relativnφ:
<meta http-equiv="refresh" content="3;url=ondra.html">
Zkuste p°φklad. Trocha teorie: meta tag s http-equiv by prohlφ╛eΦ m∞l chßpat jako ekvivalentnφ http hlaviΦce. Http hlaviΦka refresh vyvolß aktualizaci dokumentu, ale dß se p°itom podstrΦit jinΘ url (pokud tam url nenφ, obnovφ se tatß╛ strßnka).
Starß strßnka s meta tagem by nem∞la b²t prßzdnß. Krom∞ textu, kter² ujistφ Φtenß°e, ╛e je na sprßvnΘ cest∞, by m∞la obsahovat odkaz na novou url. M∙╛e se toti╛ stßt, ╛e u╛ivatel bude mφt mo╛nost meta refresh zakßzanou (v Internet Exploreru je to na kart∞ ZabezpeΦenφ > Vlastnφ ·rove≥), t°eba╛e to je °φdk² jev. Odkaz se bude takΘ v²born∞ hodit vyhledßvaΦ∙m a u╛ivatel∙m alternativnφch browser∙.
P°φklad jednoduchΘho p°esm∞rovßnφ javascriptem:
<script>
window.location.href="http://jina_adresa.cz/cokoliv";
</script>
nebo p°esm∞rovßnφ na Seznam s tφm rozdφlem, ╛e souΦasnß strßnka nebude v∙bec za°azena do historie:
<script>
window.location.replace("http://www.seznam.cz");
</script>
JavascriptovΘ p°esm∞rovßnφ je nejmΘn∞ jist² zp∙sob p°esm∞rovßnφ. Krom∞ toho, ╛e javascript m∙╛e b²t (teoreticky) vypnut² nebo nepodporovan², to m∙╛e hßzet r∙znΘ netu╣enΘ chyby. JavascriptovΘ p°esm∞rovßnφ se pou╛φvß zejmΘna tehdy, kdy╛ nenφ p°edem jasnΘ, kam se bude p°esm∞rovßvat (kdy╛ se to nap°ed podle n∞Φeho poΦφtß, to meta tagem nejde). Dost Φasto se to pou╛φvß nap°. na velk²ch chatech. Nebo se javascriptem nap°ed zji╣╗uje, zda v∙bec se bude p°esm∞rovßvat (nap°. reklamnφ interstitial podle cookies).
Zase je pot°eba dßt tam navφc odkaz na novou url.
VhodnΘ zejmΘna pro st∞hovßnφ vφce strßnek, proto╛e se to dß nastavit celΘmu serveru najednou. Nastavuje se to v Apachi, IIS nebo v jinΘm softwarovΘm http serveru.
Server IIS od Microsoftu na to mß v nastavenφ slo╛ky za╣krtßvacφ polφΦko (nevφm, jak se jmenuje), kam se potom dß nastavit novß slo╛ka, kam se obsah bude p°esm∞rovßvat.
PodstatnΘ je, aby server p°i po╛adavku na starou adresu odpovφdal 301 Moved Permanently (k≤d Φ. 301 znamenß p°esunuto nafurt). Pak toti╛ p°esm∞rovßnφ sprßvn∞ pochopφ i Google, Jyxo a jinΘ vyhledßvaΦe.
Na serveru Apache se p°esm∞rovßnφ dß nastavit vφce zp∙soby. OblφbenΘ je pou╛itφ modulu mod_rewrite, kter² se ovlßdß t°eba souborem .htaccess, jen╛ si m∙╛e psßt sßm autor webu (sprßvce serveru musφ mod_rewrite a .htaccess povolit, nenφ to samoz°ejmost).
Nßvod na p°esm∞rovßnφ pomocφ mod_rewrite a htaccess vy╣el v Sov∞ v sφti. Mod rewrite podrobn∞ji je popsßn na Rootu.
Ne na ka╛dΘm linuxovΘm serveru je mod_rewrite nainstalovßn. Pro jednoduchΘ p°esm∞rovßnφ staΦφ mod_alias, ten b²vß na serveru Apache dostupn² skoro v╛dy. Do souboru .htaccess se napφ╣e °ßdek:
Redirect /pokus.html http://celaadresa.cz/pokus2.html
Φφm╛ dojde k p°esm∞rovßnφ (http odpov∞∩ 302 doΦasn∞ p°emφst∞no) souboru pokus.html na novou adresu. U╛ivatel sice do prohlφ╛eΦe vy╗ukß starou (nebo klikne na star² odkaz), ale v °ßdku adresy u╛ se mu objevφ novß adresa. P°esm∞rovan² zdroj musφ zaΦφnat lomφtkem (odvozuje se od rootu webu), novß adresa musφ b²t absolutnφ. Druhß varianta zßpisu:
Redirect 301 /pokus.html http://celaadresa.cz/pokus2.html
Server by pak m∞l posφlat http odpov∞∩ "301 moved permanently" s informacφ o novΘ URL. V praxi nenφ mezi odpov∞∩mi 301 a 302 ╛ßdn² v∞t╣φ rozdφl. Prohlφ╛eΦ by si m∞l sßhnout na novΘ URL (v http odpov∞di °ßdek Location). Teoreticky vzato je to jedinΘ zcela bezpeΦnΘ a sprßvnΘ p°esm∞rovßnφ.
Pokud nenφ pou╛itφ souboru .htaccess povoleno, dß se to napsat rovnou do konfigurßku serveru (httpd.conf). Jestli╛e vßm to p°ijde slo╛itΘ, tak v∞t╣ina sprßvc∙ serveru to umφ nastavit (vyjma sprßvc∙ freeweb∙, ti to ned∞lajφ).
Na starΘ strßnky se v p°φpad∞ serverovΘho p°esm∞rovßnφ nedßvß ╛ßdn² specißlnφ obsah, proto╛e server ty starΘ strßnky v∙bec nebude odesφlat. I p°i dotazu na starou adresu se v prohlφ╛eΦi automaticky objevφ novß. Zkuste si nap°φklad vy╗ukat http://dusan.pc-slany.cz/internet/presmerovani.htm a uvidφte, ╛e jste zase na tΘto strßnce (proto╛e v╣echno z dusan.pc-slany.cz/internet/ se nastavenφm serveru p°est∞hovalo na www.jakpsatweb.cz/).
V jazyce PHP je funkce Header(), do kterΘho se dß napsat parametr Location s novou adresou. Pokud je funkce header() na serveru povolena, dojde k p°esm∞rovßnφ na novou strßnku:
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.celaadresa.cz");
header("Connection: close");
Kdy╛ strßnka byla na jednom mφst∞ a te∩ je jinde, tak je jasnΘ, ╛e je pot°eba p°esm∞rovat. Ve v╣ech jin²ch p°φpadech je pou╛itφ p°esm∞rovßnφ spornΘ. Rozhodn∞ by nem∞lo jφt o standardnφ souΦßst navigace webu. Kdo nep°esm∞rovßvß, vyhrßl p°edem. Nep°esouvejte soubory a adresy zbyteΦn∞.
Aby se Φtenß° / u╛ivatel nepolekal a nezdrhnul. Mßte rßdi, kdy╛ vßm prohlφ╛eΦ z niΦeho nic problikne a zaΦne se naΦφtat jinß strßnka? Jß ne.
Hezk² trik vyu╛φvß p°esm∞rovßnφ p°i stahovßnφ soubor∙ nebo hudby. Meta refresh se nenamφ°φ na jinou html strßnku, ale t°eba na soubor typu zip.
<meta http-equiv="refresh" content="1;url=http://www.sweb.cz/yuhu/jak_psat_web.zip">
Prohlφ╛eΦ takov² soubor neumφ otev°φt, a tak zavolß externφ aplikaci (nebo se zeptß, jestli se to mß stßhnout). P∙vodnφ strßnka p°itom z∙stßvß v prohlφ╛eΦi. M∙╛ete se podφvat na p°φklad p°esm∞rovßnφ na sta╛enφ souboru. D∞lß se to v tehdy, kdy╛ je pot°eba poΦet sta╛enφ zipu p°ibli╛n∞ poΦφtat (a nejde to z logu).
Stejnou konstrukcφ se dß dosßhnout jinΘho efektu -- p°ehrßvßnφ hudby. Nßvod jsem na to Φetl u╛ p°ed ╣esti lety (psßno 2003) v Satrapov∞ Web Designu. Refresh se namφ°φ na hudebnφ soubor, kter² by si v ideßlnφm p°φpad∞ m∞la p°evzφt hudebnφ aplikace (t°eba Winamp). Podmi≥ovacφ zp∙sob je ale na mφst∞, proto╛e dost Φasto to vyhazuje n∞jakΘ divnΘ hlß╣ky, tak╛e to doporuΦuji nepou╛φvat.
Nßzory a p°φstupy se r∙znφ. Ka╛d² vyhledßvaΦ se s p°esm∞rovßnφm pot²kß jinak. Obecn∞ se dß °φci, ╛e p°esm∞rovanΘ strßnky chßpou vyhledßvaΦe jako mΘn∞cennΘ. Jako nejjist∞j╣φ pro Google se uvßdφ serverovΘ p°esm∞rovßnφ (hlaviΦka 301) a jß s tφm mßm dobrΘ zku╣enosti. Podle m²ch pozorovßnφ Google po dvou m∞sφcφch p°evede 301 p°esm∞rovan² zßznam na novΘ url a zachovß mu pozici ve v²sledcφch (pouze na dva dny [b∞hem Google-dance] to z v²sledk∙ vypadne). TakΘ Jyxo hlaviΦku 301 respektuje. Ale katalogy p°esm∞rovßnφ nemajφ rßdy. Nap°φklad Seznam nedovoluje vlo╛it strßnku, kterß se p°esm∞rovßvß (nepoznß ale javascriptovΘ p°esm∞rovßnφ, pokud si toho admin nev╣imne).
Meta tagy a p°esm∞rovßnφ javascriptem jsou pro vyhledßvaΦe nevhodnΘ. To u╛ je lep╣φ obyΦejn² odkaz.
ObΦas dostßvßm prosby o radu typu: "Ten a ten server mi zru╣il strßnky nebo odep°el p°φstup, tak╛e se na n∞ nedostanu. Pot°ebuji je p°esm∞rovat."
To nejde nijak. Pokud je sprßvce serveru nedostupn² nebo nechce komunikovat a na strßnky se nedß uploadovat, nenφ ╣ance. To klasicky nastßvß na freewebech p°i poru╣enφ podmφnek (a╗ u╛ domn∞lΘm nebo skuteΦnΘm). Pak je pot°eba prost∞ v╣em n∞jak sd∞lit, ╛e mßm novou adresu a p°esm∞rovat p°φpadnΘ odkazy. Nebo se soudit :-)
Pokud mßte domΘnu druhΘ ·rovn∞ n∞co.cz hostovanou u n∞jakΘho nesolidnφho sprßvce serveru (providera), m∙╛ete p°est∞hovat celou domΘnu. NejlΘpe tak, ╛e se dohodnete s n∞jak²m jin²m solidnφm sprßvcem a ten to za°φdφ. V zßsad∞ to ud∞lß tak, ╛e registrßtorovi domΘny (d°φve to byl NIC, ·°ad spravujφcφ domΘnu cz) sd∞lφ novou adresu primßrnφho DNS serveru. N∞kdy se dß s providery domluvit, ╛e DNS z∙stane na starΘm mφst∞ a A zßznam bude ukazovat na nov² server. Neznßte-li seri≤znφ servery, napi╣te mi, m∙╛u jich pßr doporuΦit.
o tvorb∞, ·dr╛b∞ a zlep╣ovßnφ internetov²ch strßnek