Blog webdeveloperski Patryk yarpo Jar

Przekierowania ze strony

Autor wiadomości Listopad 30, 2010

Często zdarza się, że chcielibyśmy mieć możliwość zrobienia przekierowania z naszej stron na inną. Spróbuję pokazać 3 możliwe rozwiązania, a także krótko opisać pozytywne i negatywne aspekty tychże podejść.

Rozwiązania

Meta tag HTML

To rozwiązanie wykorzystuje prosty natywny kod HTML. Nie wymaga żadnych wtyczek, żadnych dodatków, ani parserów języków skryptowych:

<meta http-equiv="refresh" content="10">

Taki kod, nie przenosi na inną stronę. Jest to jednak wstęp do kodu właściwego. Pozwala on odświeżyć stronę, na której się teraz znajdujemy za dokładnie 10 sekund. Można jednak sprawić, aby podczas odświeżania przeniosło nas na inną stronę.

<meta http-equiv="refresh" content="10;http://youthcoders.net">

Ten kod po 10 sekundach przeniesie nas na stronę http://youthcoders.net. Jeśli zmniejszylibyśmy czas do 0, to moglibyśmy uzyskać efekt przeniesienia bez oglądania pierwotnej strony.

Wady

Ta metoda była nadużywana przez spamerów od pozycjonowania, przez co nie jest zbyt lubiana przez silniki indeksujące strony w wyszukiwarkach.

Javascript

Jeśli chcemy przenieść się na inną stronę, i mamy dostępny JS, zawsze można napisać krótki skrypt:

window.location = 'http://youthcoders.net';

Takie rozwiązanie pozwala nam na przejście do strony podanej jako nowa wartość właściwości `location'.

Dla pełnego przykładu pokażę, co zrobić, aby przeniesienie nastąpiło po np. 10 sekundach:

window.setTimeout(function() { window.location = 'http://youthcoders.net' }, 10000);

Wady

Wymaga działającego JS. Wg różnych badań, rzekomo ok. 5% internautów ma wyłączoną obsługę JS. Nie wiem, jak do tego rozwiązania podchodzą wyszukiwarki.

PHP

W przypadku PHP sprawa jest najprostsza. Starczy jedna linia kodu i jesteśmy pewni, że strona zostanie przeniesiona. Co więcej wyszukiwarki najbardziej cenią sobie ten rodzaj przekierowań.

header('Location: http://youthcoders.pl');

Funkcja header musi być wywołana nim cokolwiek [nawet spacja czy enter] zostanie wysłane do przeglądarki. Służy ona do wysyłania surowego nagłówka HTTP do przeglądarki.

Aby być pewnym, że takie przekierowanie nie zostanie uznane za spam przez wyszukiwarkę, należy zastosować przekierowanie z wcześniej wysłanym statusem 301 - moved permanently.

header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.nowa-domena.pl');
exit();

Po wywołaniu funkcji header warto wywołać exit / die. O tym dlaczego możesz przeczytać w artykule o header.

Komentarze (0) Trackbacks (0)

Brak komentarzy.


Leave a comment

 

Brak trackbacków.