Дата и время публикации:
Использование и применение
1. Использование
Существует как минимум два способа, чтобы сообщить посетителям и поисковым машинам о том, что страница WEB изменила свой адрес "прописки" безвозвратно, и самым известным из них является код ошибки "301 Redirect ...", у которого существует два недостатка
- необходимость в доступе к файлу .htaccess, который доступен только серверу Apache;
- перечисления адресов в указанном файле двух адресов URL – старого и нового.
Redirect 301 /oldpage.html http://www.yoursite.com/newpage.html
Redirect 301 /oldpage2.html http://www.yoursite.com/folder/
Что согласитесь не совсем удобно в виду разделения интерфейса и реализации, что в случае WEB-строительства не всегда удобно
Оптимальным способом информирования всех заинтерисованных лиц является использованиe HTML-тега <meta>.
2. Применение
Простота применения HTML-тега <meta> состоит в указание пары атрибутов для перенаправления на другой URL путем установки атрибуту http-equiv текстового значения "refresh", а в атрибуте content производится установка числового значения времени отсрочки в секундах и самого адреса "новой прописки", как показано в листинге 2.1
Листинг 2.1
001 <html> 002 <head> 003 <meta http-equiv = "refresh" content = "3; url =https://rjaan.narod.ru/docs/dev/gnucs/gas/gas-push.html " /> 004 <meta http-equiv= "Content-Type " content= "text/html; charset=utf-8 "> 005 <link rel= "stylesheet " href= "https://rjaan.narod.ru/styles/common.css "> 006 <title>push 007 </head> 008 <body bgcolor=White link=#000000 vlink=#000000 alink=#000000 topmargin=0 leftmargin=0 marginwidth=0 marginheight=0> 009 <p style= "font-size: 26pt;font-weight:bold ">Redirect to new edition!</p> ...
В листинге 2.1 показан фрагмент страницы WEB, безвозвратно "перебежавшей" на новое "местожительство", в связи с выходом новой редакции и изменения структуры самого сайта.
Результат применения этой "беготни" можно посмотреть по этой ссылке, из которого следует, ЧТО с отсрочкой не менее 3-х секунд осуществляется автоматическое перенаправление на указаный в атрибуте контента URL-адрес "https://rjaan.narod.ru/docs/dev/gnucs/gas/gas-push.html".
При этом, как видно из листинга 2.1, на "протухшей" странице, в строке 4, используется ВТОРОЙ тег <meta>, которой указывает браузеру какая кодовая страница использована внутри документа. В данном случае используется кодировка "UTF-8".
Если же сообщать о причинах перенаправления не хочется, значение времемни отсрочки в атрибуте content установить в нулевой значение, как показано в листинге 2.2
Листинг 2.2
...
003 <meta http-equiv = "refresh" content = "0; url =https://rjaan.narod.ru/docs/dev/gnucs/gas/gas-push.html " />
...
В этом случае, перенаправление будет произведено немедленно на глазах изумленной публики. При этом, чтобы она не скучала, когда в строке задержка по перенаправлению будет задана до 5-ти секунд, как показано в листинге 2.3
Листинг 2.3
001 <html>
002 <head>
003 <meta http-equiv = "refresh" content = "0; url =https://rjaan.narod.ru/docs/dev/gnucs/gas/gas-push.html " />
...
005 <script type="text/javascript">
006 function sympnt_append()
007 {
008 var runfunc=function() {
009 var node = document.getElementById("warn-id");
010 node.innerHTML+= "."; setTimeout( runfunc, 800 ); };
011
012 setTimeout( runfunc, 800 );
013 }
014 </script>
015 </head>
016 <body onload="sympnt_append()">
...
018 <p id="warn-id" style="font-size: 26pt;font-weight:bold">Redirect to new edition
019 </body>
020 </html>
В котором показана организация перенаправления на новый контент, с использованием Javascript, статьи "Как обновить Debian 6.0 до 7.0", написанной когда-то в стандарте HTML4, а теперь уже устаревшей.
В строке 18 листинга 2.3 с использованием элемента <P>, чтобы пользователь не сукачал и был информирован, что процесс пошел: в окне браузера печатается фраза "Redirect to new edition", дополняемая точками по истечении каждой секунды.
Дополнение точками организуется с помощью функции sympnt_append(), написанной на Javascript и определенной в строках 6-14 указанного листинга, в которых используется setTimeout() для однократнокого вызова функции, определенной в страках 8-10 и обеспечивающей дополнение точкой информирующей пользователя фразы по истечению каждых 800 мс.
При этом в строке 12 функция setTimeout() используется однократно для запуска вышеозначенной конструкции, когда функция sympnt_append() вызывается с помощью атрибута события onload в элементе <body>, как показано в строке 16 рассматриваемого листинга.
3. Библиография
3.1 W3docs. How to Redirect a Web Page in HTML
3.2 301 Redirects