Javascript перенаправить на другую страницу. htaccess перенаправление из подкаталога на другой URL


Редирект (от англ. redirect – переориентировать) – это переадресация страницы сайта на какую-то другую страницу или другой сайт. Редирект можно сделать различными способами, основные из которых и будут здесь рассмотрены., а именно redirect на php , javascript , редирект при помощи html и при помощи файла htaccess .

Среди перечисленных способов, наиболее актуальными являются php redirect и редирект при помощи.htaccess . Дело в том, что именно эти способы позволяют не только переадресовать страницу, но и вернуть специальную 301 ошибку (301 Permament Redirect). Для чего же это нужно? А нужно это для поисковых систем.

Допустим у нас был раскрученный сайт с большим числом посетителей. Затем сайт был перемещён на новый домен. Поисковая система его ещё не знает. 301 редирект позволяет как бы “склеить” старый и новый адрес, сохранив при этом все те элементы оптимизации, которые были сделаны для этого сайта, тем самым сохранив посещаемость и аудиторию самого сайта.

А теперь рассмотрим все перечисленные варианты редиректов, и начнём с редиректа на php.

PHP redirect (301)

Редирект на php, как и на других языках программирования, основан на спецификации протокола HTTP, а именно отправки необходимых заголовков. Как это работает? Довольно просто. Каждый раз, когда мы обращаемся к какой-то странице интернета, мы получаем HTTP ответ от сервера, который содержит заголовки (header) и тело (body). В теле ответа

Редирект 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, поскольку именно они позволяют перенести сайт без всяких потерь для оптимизации в поисковых системах. Если оно не важно, то тогда подойдёт любой метод. И собственно на этой заключительной ноте (соль? ля? си? – прим.ред. ) я и заканчиваю этот пост.

28.08.16 8.5K

В этой статье я расскажу, как можно перенаправить пользователя с одной веб-страницы на другую с помощью JavaScript . А также приведу несколько простых примеров JS редиректа .

Вы можете перенаправлять пользователя с одной веб-страницы на любую другую несколькими способами. В том числе с помощью обновления мета-данных HTML , перенаправления на стороне сервера. Например, используя файл .htaccess , PHP , и с помощью перенаправления на стороне клиента через JavaScript .

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

Давайте рассмотрим, как можно использовать JavaScript для перенаправления пользователя на другую страницу.

Автоматическое JavaScript-перенаправление на другую страницу

Если нужно автоматически перенаправить пользователя с одной страницы (URL1 ) на другую страницу (URL2 ), можно использовать следующий код:

window.location.href = "URL2";

Необходимо вставить приведенный выше код на первую страницу (URL1 ). Замените URL2 на нужный адрес страницы. Лучше поместить этот код внутри элемента (а не в нижней части страницы ), чтобы страница перенаправлялась до того, как браузер начинает ее отображать.

СОВЕТ: Если вы используете встроенный JavaScript (т.е. без внешнего файла.js), не забудьте поместить код JavaScript в теги .

Перенаправление на другую страницу через X секунд

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

setTimeout(function(){ window.location.href = "homepage-url"; }, 5 * 1000);

Необходимо вставить приведенный код JavaScript на странице приветствия. Не забудьте заменить homepage-url на URL-адрес домашней страницы.

Мы использовали метод setTimeout , чтобы указать скрипту выполнить перенаправление через 5 секунд (умножаем 5 на 1000, чтобы преобразовать секунды в миллисекунды ).

СОВЕТ: В JavaScript значения времени всегда рассчитываются в миллисекундах.

Перенаправление на другую страницу, исходя из условия

Например, можно выполнить перенаправление в зависимости от браузера посетителя (хотя это не рекомендуется ), размера экрана, времени суток, или другого условия.

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

if (CONDITION) { window.location.href = "redirect-url"; }

Например, этот код перенаправляет посетителей на другую страницу, если ширина их экрана меньше 600 пикселов:

if (screen.width < 600) { window.location.href = "redirect-url"; }

Перенаправление на другую страницу на основе действий пользователя

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

Следующий код будет перенаправлять посетителя на целевую страницу после нажатия на #mybutton :

document.getElementById("mybutton").onclick = function() { window.location.href = "redirect-url"; };

Можно сделать то же самое, используя следующий код:

Go to Homepage

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

Редирект - это автоматическое перенаправление пользователя с одного адреса на другой. То есть человек заходит на один сайт, а оказывается совсем на другом (либо на другой странице одного сайта). Я, думаю, что такое Вы видели достаточно часто. Иногда редирект делают с задержкой . В общем, тема очень важная, и её я рассмотрю в этой статье.

Вообще говоря, речь пойдёт сейчас об объекте Location , который является свойством объекта Document . У объекта Location есть свойство href , с помощью которого и реализуется редирект на JavaScript . Данное свойство доступно и для чтения, и для записи. Для начала давайте его прочитаем:

Document.write(document.location.href);

В результате Вы увидите полный адрес к Вашему скрипту.

Теперь сделаем простейший редирект на JavaScript :

Document.location.href = "http://сайт";

Таким образом, все пользователи, которые запустят этот скрипт будут автоматически переходить на сайт: "http://сайт ".

Теперь давайте сделаем классическую задачу, которые реализуют очень часто. Допустим, у Вас был сайт: http://a.ru . Затем Вы купили новый домен для Вашего сайта и его адрес стал: http://b.ru . И хотите, чтобы все посетители переходили с http://a.ru на новый http://b.ru . Причём, Вы хотите, чтобы они знали, что у Вашего сайта новый адрес. Знакома ситуация? Так вот, реализуется это с помощью редиректа с задержкой:


var delay = 5000;
setTimeout("document.location.href="http://b.ru"", delay);

У нашего сайта новый адрес: http://b.ru. Через 5 секунд Вы будете перенаправлены на него. Если этого не происходит, то перейдите самостоятельно: http://b.ru

Сначала пользователь увидит сообщение, а через 5 секунд он уже перейдёт по новому адресу. Если вдруг у пользователя отключён JavaScript , то тогда он может перейти самостоятельно, просто щёлкнув по ссылке.

Недавно была статья, в которой я рассказал, что появилась партнерская программа баз пастухова (почитать — ). Там я упомянул, что Макс сделал возможность по-умному прятать реферальные ссылки. Спрятать свои реферальные ссылки можно теперь можно через интерфейс партнерской программы через 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";







2024 © gtavrl.ru.