Перенаправления с одной страницы на другую js. Четыре варианта редиректа: Java Script, html, php и htaccess

17.06.2019

Четыре варианта редиректа (перенаправления) пользователей, наглядно и с примерами.

1. Редирект через Java Script - будет работать только если у пользователя включена поддержка JS на устройстве. Не парьтесь, процент пользователей без JS ничтожно мал. Если желаете проверить, насколько это не комфортно - просто отключите у себя в браузере JS на один день.

Код работающего редиректа:

2. Html редирект

Данный пример перенаправляет пользователя по нужному адресу с задержкой в 1 секунду.

Помню, в IE он отрабатывал не корректно, вернее совсем не отрабатывал. Если будете использовать - проверьте, на всякий случай.

3. Редирект на php

Просто и со вкусом, файл с расширением.php с таким содержанием:

4. Редирект через.htaccess

Redirect / http://url4trafic.ru

При перенаправлении трафика из социальных сетей в общих случаях наиболее актуален вариант из примера №1, с небольшим дополнением - а именно - с использованием ogp разметки. Чтоб было немного понятней - разметка Open Graph это протокол разметки контента страницы для отправки её содержимого в социальные сети. При публикации ссылки в социальную сеть вы можете «вручную» указать какие картинку-миниатюру и описание отображать.

Работающий пример (возможны неточности и недочёты, но оно таки работает:)

Заголовок страницы

Как это выглядит при публикации вКонакте:

Краткий разбор моментов:
- указывает что будет использоваться разметка Open Graph
- - заполняем заманчивое описание - в примере выше это «Джон Сина назвал дату своего возвращения»
- Заголовок страницы - интригующий заголовок - в примере выше это «Джон Сина возвращается к выступлениям - Новости реслинга WWE»
- - это путь к изображению, которое будет загружаться - в примере выше этот тот самые мужик в синей майке.
Чтобы ссылка получилась красивой и большой - изображение изначально должно быть достаточных размеров. Для вКонтакте например, это больше 537x240 пикселей. Лучше - больше.

Location="http://url4trafic.ru" - это как вы уже догадались url, куда мы будем отправлять пользователя.

13.08.16 4.8K

В этой статье мы покажем, как можно организовать перенаправление со страницы, используя JavaScript location . Неожиданные перенаправления считаются очень раздражающими с точки зрения пользователей, поскольку они отрицательно влияют на общее впечатление. Например, если вы перенаправляете пользователей на другой сайт сразу после их перехода на ваш. Также, если вы направите на постороннюю страницу по таймеру или после того, как они совершили определенное действие. Это приведет к тому, что пользователь захочет сразу же покинуть ваш сайт.

Кроме этого поисковые системы не жалуют ресурсы, использующие переадресацию, особенно если они вводят пользователей в заблуждение. Но существуют случаи, когда перенаправление может быть полезно. Поэтому мы оставляем за вами принятие решения, использовать переадресацию или нет.

Методы переадресации JavaScript

В JavaScript window location или объект location используется, чтобы получить информацию о местоположении текущей веб-страницы (документа ), а также для его изменения. Ниже приведен список способов, которые могут быть использованы для реализации переадресации JavaScript :

//Устанавливает новое местоположение текущего окна. window.location = "http://www.example.com"; //Устанавливает новую гиперссылку (URL) для текущего окна. window.location.href = "http://www.example.com"; // Присваивает новый URL текущему окну. window.location.assign("http://www.example.com"); //Заменяет положение текущего окна на новое. window.location.replace("http://www.example.com"); //Задает местоположение самого текущего окна. self.location = "http://www.example.com"; // Задает положение самого верхнего окна относительно текущего. top.location = "http://www.example.com";

Хотя приведенные выше строки JavaScript кода выполняют схожую работу, у них есть небольшие отличия. Например, если вы используете перенаправление top.location внутри элемента iframe , то это принудительно перенаправит на главное окно. Еще один момент, о котором стоит помнить: location.replace() заменяет текущий документ, удаляя его из истории и делая его недоступным с помощью кнопки «Назад » в браузере.

window.location.href = "http://www.example.com";

Также вы можете зайти на эту страницу, чтобы подробнее узнать, как работает window.location .

Переадресация JavaScript: перенаправление при загрузке

Чтобы перенаправить пользователя на другой веб-сайт сразу же после открытия вашего сайта, можно использовать следующий код вверху вашей страницы, внутри элемента . Или, если вы используете отдельный .js файл , поместите следующий код в этот файл и не забудьте сослаться на него в заголовке вашей страницы:

window.location.href = "http://www.example.com";

Просто замените URL-адрес из примера на тот адрес, куда вы хотите перенаправлять. Следует отметить, что при этом виде переадресации, посетители вообще не увидят вашу веб-страницу и будут моментально перенаправлены на целевой адрес.

Переадресация JavaScript: перенаправление после определенного периода времени

Чтобы перенаправить пользователя на другой сайт после определенного периода времени, можно использовать следующий код:

setTimeout(function() { window.location.href = "http://www.example.com"; }, 3000);

Функция JavaScript location href , приведенная выше, перенаправит пользователя со страницы через 3 секунды после полной загрузки. Вы можете изменить значение 3000 (3 x 1000 в миллисекундах ) на свое усмотрение.

Переадресация JavaScript: перенаправление со страницы после события или действия пользователя

Иногда нужно отправить пользователя на другую страницу после определенного события или совершенного действия. В таких случаях можно использовать проверку условия или закрепить за элементом событие для выполнения переадресации. Рассмотрим два следующих примера:

// Проверяем, верно ли условие, и затем перенаправляем. if (...) { window.location.href = "http://www.example.com"; }

Приведенный выше код JavaScript document location href выполнит перенаправление, если условие верно.

Недавно была статья, в которой я рассказал, что появилась партнерская программа баз пастухова (почитать — ). Там я упомянул, что Макс сделал возможность по-умному прятать реферальные ссылки. Спрятать свои реферальные ссылки можно теперь можно через интерфейс партнерской программы через php редирект , редирект javascript и .

Что такое вообще редирект?

Редирект – это когда с помощью специальных технических инструментов, мы настраиваем переадресацию пользователя с одной страницы на другую страницу, или на другой сайт

Как видите, способов редиректа существует вагон и маленькая тележка. Но я скажу сразу, что не все виды редиректа одинаково лояльно воспринимаются поисковыми системами.

Например, редирект javascript и редирект html – это вроде как стремные способы переадресации страницы. Дело в том, что отношение поисковиков к переадресации, мягко скажем, неоднозначное. То есть, я не берусь утверждать, что редирект через javascript однозначно приведет к бану, но все-таки такая возможность не исключается.

Вообще считается, что наиболее безопасным видом редиректа является 301 редирект . Поисковики относятся к нему более лояльно. Поэтому из наиболее распространенных способов переадресации самыми безопасными являются редирект через htaccess и php редирект. Все потому, что они не просто переадресовывают пользователя на нужную страницу, но и выдают специальный код ошибки — 301 Permament Redirect. А это есть хорошо для поисковых роботов.

Да, кстати, насчет безопасности, по поводу того, что 301 редирект вроде как самый надежный, а все другие, в том числе и редирект через html код не являются надежными. Есть пример. Сайт авторитетного человека – Алексея Вострова (http://www.seoded.ru/). У Алексея сайт сделан на html. Я давно обратил внимание, что у него все внешние ссылки преобразованы во внутренние. Ну вот, например, как . Там, где стоит анкор «Перейти на другой сайт», внешняя ссылка замаскирована под внутреннюю, и переадресация реализована через html редирект

То есть, это говорит об одном из двух:

1-е: либо поисковики лояльно относятся к html редиректу, организованному только на статических сайтах

2-е: либо html редирект безопасен для всех видов сайтов, в том числе и динамических, на php

Но чтобы точно ответить на этот вопрос, нужно делать эксперименты. А чтобы сделать нормальный эксперимент, нужно хотя бы штук 100 сайтов, потому что если поисковик забанит один сайт за использование, например, редиректа через javascript, то это может рассматриваться как случайность, а если забанит 98 сайтов из 100 за использование того же вида редиректа, то это уже будет закономерность. Но поскольку я такими ресурсами не обладаю, то буду строить свое мнение только на предположении, и большинстве мнений, которые можно встретить на форумах. А там считают, что 301 редирект – самый надежный

Единственное, что можно сказать по поводу целесообразности использования того или иного вида редиректа, так это то, что не все поисковики понимают редирект через javascript. А это можно использовать, чтобы отдать больше или меньше веса отдельным страницам сайта. Помните, я писал статью про программу для определения веса страниц Page Weight? Там я подробно про все эти вещи говорил. Почитать можно здесь — . Что касается Google, то эта поисковая машина понимает ссылки через javascript (ну разве что кроме самых хитрых), но понимает ли такие ссылки Яндекс – это до сих пор вопрос. Но если верить слухам, то вроде как пока Яша такие ссылки не сечет.

Будем считать, что с этим разобрались, и на этом ликбез по поводу целесообразности использования того или иного вида переадресации заканчиваем, переходим, собственно, к практике. Посмотрим, как именно настраиваются разные виды редиректа.

Редирект html

1

В общем-то, сверху на скриншоте вы уже могли наблюдать код данного вида переадресации. Единственное, на что нужно здесь обратить внимание – это поле «content ». Значение «0 » можно изменять. Оно означает количество секунд до переадресации. Например, если поставим content=1 , то переадресация произойдет через одну секунду. Переадресовывать будет на сайт, указанный в поле url. Вот в это поле и прописываем нашу реферальную ссылку.

Теперь по шагам, как все это делается. Открываем Notepad, он же блокнот. Я вообще стандартным блокнотом, который уже установлен по-умолчанию в системе, не пользуюсь. Использую Notepad2. Это тот же блокнот, только с расширенным функционалом. Но это так, к слову.

В общем, прописываем в этот файл код, который я указал выше, называем его(файл) «patnerka», сохраняем с расширением.html и закачиваем в специально созданную для этого папку. Даем название папке. Например, «my_papka». И после этого на всех страницах нашего сайта, где нужно замаскировать реферальную ссылку на урл «partnerka.com?refid=183» мы просто вместо реферальной ссылки указываем адрес, где лежит html файл на нашем сайте. То есть, в нашем случае это — «_http://mysite.com/my_papka/partnerka.html». И все, теперь при нажатии на ссылку вида _http://mysite.com/my_papka/partnerka.html пользователя будет переадресовывать на адрес _http://partnerka.com?refid=183

PHP редирект (301)

Кстати, попутно у меня созрела еще одна мысль, для чего стоит использовать редирект. Он может пригодиться тем, кто продает ссылки со своих сайтов в бирже . То есть, там ведь важно, чтобы со страницы было как можно меньше внешних ссылок. Вот мы и делаем так, что внешних ссылок у нас становится очень мало, либо вообще нет. То есть, фактически преобразовываем внешние ссылки во внутренние.

В случае, когда мы делали html редирект , мы создавали отдельный файл, который заливали на хостинг. В данном случае все то же самое. Создаем файл go.php , и в него прописываем следующий код:

1 2 3 4 5 6 7 8 9 10 11 < meta http- equiv= "content-type" content= "text/html; charset=UTF-8" /> Перенаправление < ?php $url = isset ($_REQUEST [ "url" ] ) ? $_REQUEST [ "url" ] : "" ; if (preg_match ("#(http?|ftp)://\S+[^\s.,>)\];\"\"!?]#i" , $url ) ) { sleep (0 ) ; //header("Location: http://partnerka.com?refid=183"); echo "" ; exit () ; } ?>

Перенаправление < ?php $url = isset($_REQUEST["url"]) ? $_REQUEST["url"] : ""; if(preg_match("#(http?|ftp)://\S+[^\s.,>)\];\"\"!?]#i",$url)){ sleep(0); //header("Location: http://partnerka.com?refid=183"); echo ""; exit(); } ?>

Здесь тоже можно задать задержку переадресации с помощью параметра sleep (0). Вместо нуля ставим, например, значение 1, и задержка при переадресации составит 1 секунду.

Сохраняем этот файл, после чего заливаем его в корневую папку сайта. Если это блог на WordPress, то закачиваем в папку, где находится wp-config.php.

То есть, что я сделал? В вышеприведенный код в параметр Location я добавил урл адрес с моей реферальной ссылкой. Единственный минус здесь – это то, что придется для каждой реферальной ссылки создавать отдельный файл.

Кстати, я писал вверху, что для реферальных ссылок создаем на сервере отдельную папку. И дали название этой папке «my_papka». Так вот, эту папку нужно не забыть закрыть от индексации с помощью robots.txt .

Ну и потом точно так же, как и в предыдущем примере, для того чтобы направить пользователя по нашей замаскированной реферальной ссылке _http://partnerka.com?refid=183, мы просто указываем вместо нее url адрес месторасположения нашего файла go. php на нашем сервере.

Редирект JavaScript

Этот вид редиректа делается по аналогии с предыдущим. Создаем новый текстовый файл через Notepad2, куда прописываем следующий код:

1 < html>< head>< script type= "text/javascript" > window. location= " http://partnerka.com?refid=183" ;< body

window.location=" http://partnerka.com?refid=183";

Редирект HTML

В языке разметки HTML есть специальный мета-тег, предназначенный для переадресации.

Изменяется только поле content, где указывается количество секунд до переадресации и собственно ссылка, куда будет производиться редирект. Думаю не стоит говорить, что тег помещается в html-код между тегами head.

Редирект JavaScript

Пожалуй самый ненадёжный редирект, поскольку пользователь всегда может отключить javascript в браузере. Делается это, правда, нечасто, поэтому способ имеет право на существование.


function reload() {location = "http://site.com"}; setTimeout("reload()", 0);

В данном коде создаётся функция с переадресацией на нужную страницу, а затем вызывается в функции setTimeout, что позволяет произвести переадресацию спустя необходимое время.

Редирект htaccess (301)

Файл.htaccess – это служебный файл с различными дополнительными настройками сервера Apache. Размещается он вручную, в нашем случае, в корне сайта. С его помощью можно устраивать 301 редиректы, однако для этого в Апаче должны быть включены необходимые модули.

Использование директив модуля mod_alias

В данном модуле существуют три директивы: Redirect, RedirectPermanent и RedirectMatch. Первые две вроде как идентичны по своим свойства, третья идёт особняком. Для первых двух пример:

Redirect 301 / http://site.com
Redirect permanent /index.html http://site.com
RedirectPermanent /index.html http://site.com/default.html

Строчки схожи. Но вроде как существует один минус – чтобы перенаправить все страницы, нужно их все и будет указать в списке. Чтобы как-то облегчить задачу, существует та другая директива:

RedirectMatch /(.*)\.html$ /$1.php

Можно задавать регулярные выражения для переадресации со старого урла на новый.

Использование директив модуля mod_rewrite

Чтобы не было двоякочтения одних и тех же страниц у поисковиков, иногда нужно переправить все адреса с домена без www на домен с www. Например,

#включаем модуль и необходимую доп.опцию
RewriteEngine On
Options +FollowSymLinks
#две строки для переадресации от "без ввв" к "с ввв"
RewriteCond %{HTTP_HOST} ^site.com
RewriteRule (.*) http://www.site.com/$1

Вместо заключения

Если вас всё ещё мучает вопрос, на чём же остановить свой выбор (конечно мучает, тисками и ножницами – прим.ред. ), то пора перестать мучиться (да что вы говорите! – прим.ред. ). Останавливаем взор на редиректе php (или другого языка программирования, которые здесь не были рассмотрены, например Perl) и редиректе при помощи файла.htaccess, поскольку именно они позволяют перенести сайт без всяких потерь для оптимизации в поисковых системах. Если оно не важно, то тогда подойдёт любой метод. И собственно на этой заключительной ноте (соль? ля? си? – прим.ред. ) я и заканчиваю этот пост.

Доброго времени суток, подписчики и гости моего блога. Сегодня я хочу рассказать вам очень важный и востребованный материал, механизмы которого используются на многих сайтах и веб-сервисах. А именно я объясню, что из себя представляет в JavaScript redirect.

В этой публикации вы найдете множество полезной информации о редиректе, узнаете о его главной отрасли применения. Также я расскажу, как можно создать redirect, используя php, html и даже.htaccess. И конечно же после каждой ключевой главы вы найдете примеры. А теперь приступим к разбору полетов!

Что такое redirect и с какой целью он было создан?

В переводе с английского redirect означает «перенаправлять, переадресовывать». И правда, с помощью redirect-а происходит автоматическое перенаправление пользователей на другие страницы веб-ресурсов по заранее заданному анкору (ссылке).

Каждый из вас хоть раз сталкивался с такими ситуациями, когда заходишь на один , а он перенаправляет тебя на ту же , только расположенную по новой ссылке. Также случаются и перенаправления пользователей на другие страницы или рекламу. Все это реализовано при помощи редиректов.

Благодаря такому механизму можно гибко управлять переадресацией: устанавливать переход на новые страницы с задержкой, в случае изменения домена перенаправлять пользователя на новый адрес по url без дополнительных действий последнего, открывать страницы в новой вкладке, организовывать redirect back при неудачной перессылке и т.д.

За такие действия в отвечает объект document.location . На самом деле этот объект обладает рядом свойств, которые нужны для получения полной информации о веб-странице (page).

На данный момент я расскажу об одном свойстве, которое используется для перенаправления страниц – href. Если же есть желание углубить знания, то поищите информацию в документации.

Как с помощью document.location.href реализовать redirect?

Итак, document.location.href содержит в себе полный путь к страницам веб-сервиса. Если вы сейчас в любом запустите строку document.write (document.location.href), то в ответе получите полную ссылку на вкладку, в которой это написали.

Для того чтобы реализовать редирект, нужно просто этому свойству присвоить другой адрес.

Я решил привести пример на конкретном задании, которое часто можно встретить среди тасков в реальных проектах.

Итак, у вас имеется какой-то веб-ресурс, который расположен по ссылке, например, http://pfd.ru. Но со временем вами был приобретен новый более подходящий домен и поэтому сайт был перенесен на новый адрес – http://ddd.ru.

Так как пользователи привыкли к старой ссылке или у них в закладки занесен этот сервис еще под старым адресом, вам нужно реализовать автоматический переход. При этом реализовать задачу нужно так, чтобы клиенты увидели изменения. Для этого необходимо написать вот такую программную реализацию:

Переадресация var delay = 6000; setTimeout("document.location.href="http://ddd.ru"", delay); Теперь сайт компании "****" располагается на новом адресе: http://ddd.ru. Через 6 секунд Вас автоматически перенаправит на него. Если переход не произошел автоматически, то перейдите по указанной ссылке: http://ddd.ru

В качестве небольшого бонуса я решил прикрепить еще один пример кода, по которому очень часто задают вопросы. Иногда возникают и другие ситуации, когда вместе с перенаправлением нужно передать некоторые данный на открываемую страницу через метод отправки POST. Такой механизм также можно реализовать через js.

Для отправки какой-либо информации в html-разметке используется тег .

Теперь с помощью функции, написанной на JavaScript, совершается отправка данных:

1 2 3 4

$("document").ready(function() { $("#newSite ").submit(); });

Я рассказал вам, как реализовывать переадресацию, используя средства языка js. А теперь перейдем к разбору такого же механизма, но в других языках программирования.

Redirect в html

Для осуществления перенаправления пользователя на другой сервис в используется тег .

В примере я перенаправлю вас на официальный сайт W3C. Запустите прикрепленный код в любом доступном редакторе и проанализируйте его работу.

1 2 3 4 5 6 7 8 9 Переадресация html

Переадресация html

Расскажу немного про атрибуты тега .

означает, что в текущем браузерном окне откроется новый файл. Элемент content отвечает за время перенаправления (в данном случае 3 секунды) и адрес, на который будет совершен переход.

Однако такой подход срабатывает не всегда.

Переадресация в php

В php все также используется location и вписывается он в заголовок, как и в предыдущем варианте. Выглядит это следующим образом:

header («Location: https://www.w3.org/»);

После отработки строки, возвратиться трехзначный код состояния редиректа. Если в атрибутах header-а не указан тип переадресации, т.е. код 201 или 3**, то автоматически возвращается 302, который сообщает о временном перемещении.

Хочу отметить важную деталь. На сегодняшний день все уважающие себя разработчики используют редирект 301. Он позволяет:

  • Осуществлять суммирование важных показателей веб-сервисов, вследствие чего даже при перемещении на новый адрес сайт не теряет своих позиций в поисковых системах;
  • Производить склейку доменных имен с тройным «www» и без него;
  • Перенаправлять роботов и пользователей на новые функционирующие веб-страницы, вместо устаревших.
Директива.htaccess

Вот мы плавно подошли к важной, очень полезной, но и сложной директиве.htaccess. Она представляет из себя документ с конфигурациями для Apache и аналогичных серверов. Ее действие распространяется только на тот каталог, в котором она расположена. Также возможности действуют и на подкаталоги.

Похожие статьи