Przekierowanie strony na inny adres z pomocą HTML, PHP, JavaScript

Czas czytania 2 minuty

Czasami kiedy wprowadzamy zmiany na naszej stronie internetowej niezbędne jest wykonanie przekierowania (przeniesienia) z jednego adresu internetowego na inny.

Powody mogą być różne (np. usunięcie podstrony, zmiana domeny), jednak najważniejsze jest by umieć to zrobić jeśli taka sytuacja się nam przydarzy. Najczęstszym z nich jest przekierowanie 301 (w .htaccess).

Przekierowanie z starego adresu na nowy

Nie oznacza to jednak, że to jedyny sposób na przeniesienie użytkownika ze starego adresu na nowy. Przekierowania możemy także wykonywać bezpośrednio w plikach strony np. HTML. PHP. Jedynym ale jest dobranie ich w taki sposób by ostateczny użytkownik nie odczuł zbytnio dyskomfortu zmiany adresu strony.

przekierowanie na inny adres

Operacji tego typu nie robi się standardowo ponieważ często trzeba by było wprowadzać zmiany w całym serwisie co jest bardzo czasochłonne oraz mniej efektywne. Czasami jednak dokonuje się takiej zmiany adresu dla pojedynczych plików np. jeśli nie możemy utworzyć pliku .htaccess.

Gdzie dodać przekierowanie strony?

Poniższe przykłady są uniwersalne i powinny działać na:

  • Każdym rodzaju serwera (przekierowanie HTML)
  • Każdym serwerze z posiadającym obsługę plików PHP (przekierowanie PHP) – nie zadziała np. na Repubika.pl (darmowy serwer Onet’u)
  • W każdej przeglądarce internetowej z aktywną funkcją obsługi plików JavaScript (przekierowanie JavaScript) – czyli praktycznie na każdej aktualnej przeglądarce

Dodawanie przekierowania bezpośrednio w pliku PHP

Przekierowanie starego adresu na nowy za pomocą PHP (index.php) możliwe tylko jeśli hosting obsługuje PHP

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://nowa-domena.pl");
exit;
?>

Najlepiej by skrypt ten znalazł się jak najwyżej w pliku. Dzięki temu przeglądarka internetowa nie zacznie pobierać informacji o starej stronie i od razu przeniesie na nowy serwer.

Dodawanie przekierowania w pliku HTML

Automatyczne przekierowanie starego adresu na nowy za pomocą znacznika META w HTMLu (index.html)

<html>
<head>

 <META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://nowa-dmena.pl">
 <meta http-equiv="Content-Type" content="text/html; charset=utf8">

</head>
<body>
Za chwilę będziesz przeniesiony na nowy, inny adres strony.
</body>
</html>

Zmieniając wartość CONTENT np. na 0 (zero) odwiedzający stronę zostanie natychmiast przekierowany na nowy adres. Inna wartość zaś spowoduje że przeniesienie nastąpi dopiero po pewnym czasie np. 5 sekundach.

Przekierowanie z pomocą Javascript

Poniżej znajdziecie przykładowe przekierowanie z wykorzystaniem czystego JavaScript. Kod podobnie jak pozostałe najlepiej umieścić jak najwyżej w kodzie.

<script language="JavaScript" type="text/javascript">
   location.href="nowa-dmena.pl";
</script>

W JavaScript można również dokonywać przekierowania na inny adres z opóźnieniem np:

<script type="text/javascript">
   setTimeout("location.href='http://nowa-domena.pl';",5000);
</script>

W JavaScript odliczamy w milisekundach dlatego 5 sekund to wartość 5000 milisekund.

Przekierowanie na inną stroną z jQuery

Przekierowania można również tworzyć z jQuery – warto jednak pamiętać o wcześniejszej instalacji biblioteki.

// reakcja podobna jak przy przekierowaniu HTTP
window.location.replace("http://nowadomena.pl");

// reakcja jak przy kliknięciu w link
window.location.href = "http://nowadomena.pl";

Przekierowanie za pomocą ramek

<frameset rows="100%">
  <frame src="https://www.nowa-dmena.pl/">
</frameset>
<noframes>
  <body>Please follow <a href="http://www.nowa-dmena.pl/">link</a>!</body>
</noframes>

Te sposoby działają także w systemach CMS wystarczy dopisać kod do strony błędu np. 404.html, error.php (jeżeli zrobimy tak z wygasłą podstroną zostanie ona wyindeksowana, usunięta ze spisu stron wyszukiwarki internetowej)