× К оглавлению На главную Об авторе

   Дата и время публикации:

Использование и применение


1. Использование

Существует как минимум два способа, чтобы сообщить посетителям и поисковым машинам о том, что страница WEB изменила свой адрес "прописки" безвозвратно, и самым известным из них является код ошибки "301 Redirect ...", у которого существует два недостатка

Примечания. Файл .htaccess 1. Конфигурационный файл, используемый на серверах WEB, реализованных программным обеспечением Apache Web Server. Именно, поэтому данный файл может использоваться только после настройки указанного программного обеспечения дополнительной функциональностью и сервисными возможностями, которыми оно располагает. 2. Перечисление в файле .htaccess производится, как показано ниже. Пример взят c cайта css-tricks.com
 
Redirect 301 /oldpage.html http://www.yoursite.com/newpage.html
Redirect 301 /oldpage2.html http://www.yoursite.com/folder/

Что согласитесь не совсем удобно в виду разделения интерфейса и реализации, что в случае WEB-строительства не всегда удобно

Оптимальным способом информирования всех заинтерисованных лиц является использованиe HTML-тега <meta>.

Примечание. Тег <meta> содержит метаданные, которые несут в себе описания, ключевые слова, сведения об авторстве и т.д. Методанные используются браузерами, поисковыми машинами и серверами WEB видимого отображения на самой странице. Помещается указанный тег внутри тега <head> без ограничения числа в каждой отдельной строчке и содержит атрибут content, а так же атрибуты http-equiv , если кончено они используются. В обратном случае, атрибут content может быть любым.

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

3.3 Apache .htaccess Guide & Tutorial. What is .htaccess?

3.4 W3docs. HTML <meta> tag

3.5 Как сделать 301 редирект