Przekierowanie URL

przekierowanie zapytania HTTP z kodem stanu HTTP 3xx

Przekierowanie URL – technika polegająca na automatycznym poinformowaniu przeglądarki WWW, że ma odświeżyć stronę o innym adresie po wpisaniu danego adresu URL. Technika stosowana przy skracaniu adresów internetowych oraz przenoszeniu strony pod inny adres tak, by stary adres dalej działał.

Techniki

edytuj

Przekierowanie za pomocą metataga Refresh

edytuj

Dokument HTML prezentujący tę metodę:

<html><head>
  <meta http-equiv="Refresh" content="0;url=http://www.example.com/" />
</head><body>
  <p>Przejdź pod ten <a href="http://www.example.com/">link</a>!</p>
</body></html>
  • Liczba 0 to czas w sekundach, jaki strona ma się wyświetlać. Można ją dowolnie zmienić.
  • Prośba o przejście pod podany link jest tylko dla właścicieli starszych przeglądarek, które nie obsługują tego metataga.
  • Jest to prosta metoda, ponieważ wymaga tylko dostępu do dokumentu HTML, nie trzeba znać PHP.

Przekierowanie w JavaScript

edytuj
<script language="JavaScript" type="text/javascript">
location.href="example.php";
</script>

Przekierowanie za pomocą ramek

edytuj

Przykład:

<frameset rows="100%">
  <frame src="http://www.example.com/">
</frameset>
<noframes>
  <body>Please follow <a href="http://www.example.com/">link</a>!</body>
</noframes>

Dzięki takiemu użyciu wyświetli się strona spod nowego adresu, ale w pasku przeglądarki adres się nie zmieni.

Kody statusu strony 3xx

edytuj

Protokół HTTP definiuje następujące przekierowania:[1]

  • 300 Multiple Choices — kilka możliwości, zwykle ta sama strona w różnych językach.
  • 301 Moved Permanently — przekierowanie na stałe
  • 302 Found - tymczasowe przekierowanie adresu URL
  • 303 See Other - przekierowanie metodą POST
  • 304 Not Modified - nie zmieniono od ostatniej wizyty
  • 305 Use Proxy - dostęp przez proxy
  • 307 Temporary Redirect — czasowe przekierowanie

By użyć przekierowania Serwer musi wygenerować taki nagłówek:

HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/
Content-Type: text/html
Content-Length: 174

Można go uzyskać przy użyciu np. PHP, tworząc plik zawierający:

<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.example.org/');
header('Connection: close');
exit();
?>

Przekierowanie 301 jest bardzo ważne w SEO, ponieważ przekierowuje ono 'moc' linków kierującą na starą stronę na nową stronę. Dzięki temu pozycja w Google nie spada po przeniesieniu strony pod nowy adres.

Przekierowanie za pomocą .htaccess

edytuj

Takie przekierowanie (dokładnie z kodem 301) można także zrobić za pomocą .htaccess:

Redirect 301 / http://www.example.com/

Przypisy

edytuj
  1. HTTP/1.1: Status Code Definitions [online], www.w3.org [dostęp 2017-11-26].