Перенаправления с помощью .htaccess, PHP, HTML и JavaScript


Оглавление (нажмите, чтобы открыть):

Перенаправления Redirect через html и/или javascript. Грамотный редирект. Пример схема механизма перенаправления.

Полная поддержка директив .htaccess прилагается.

Пролонгации домена 199-00 руб

Перенаправления без директивы Redirect файла .htaccess или PHP скрипта.

Я встречал множество вариантов реализации грамотного перенаправления посетителей. Но данный метод закрытия внешних ссылок наиболее прост — доступен и будет понятен каждому.

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

Редиректим через папку, саму папку в robots.txt запрещаем к индексации.

Здесь следует отметить, что данная конструкция, несмотря на в целом осторожное отношение поисковиков к перенаправлениям, позволяет в разы уменьшить исходящую ссылочную массу, почти полностью скрыть реф-ссылку — реферальскую ссылку. При этом данный алгоритм перенаправлений успешно используется на ряде авторитетнейших сайтов входящих в том 10 по более чем 50 ключевым словам. Трастовость — на кого ссылаемся, и кто ссылается на нас — часто основа топа поисковых системы.

Итак, начнем: в тексте, где нужно поставить ссылку, которая не передавала бы ссылочный вес или скрывала рефферельскую ссылку — посетитель увидит реферальскую ссылку только уже оказавшись сайте партнера. Т.е в ссылающемся тексте вы видите вместо http://www.zorkabiz.ru/?zorka=43884 следующую культурную не вызывающую каких либо эмоций ссылку http://htaccess.net.ru/goto/zorka.html

Просто запрещаем к индексации каталог с файлами, в которых содержаться наши редиректы — перенаправления.

Содержимое http://htaccess.net.ru/goto/zorka.html статического html — файлика:

Как и обещал несколько комментариев для того, что бы все стало еще более понятно в этом файле — перенаправления:

Перезагрузка веб документа: META — REFRESH

N — время в секундах — целое число.
URL — адрес документа в определенных случаях можно не указывать.

Данная META — директива веб документов используется для автоматической перезагрузки указанной страницы через заданное время. Если URL не указан, браузер перезагрузит текущий документ — точно так же как если бы Вы нажали кнопку «Reload» -«Обновить» на панели вашего веб-броузера. Это свойство наиболее часто используется, например, если информация на странице часто меняется, например онлайн репортаж, о какого либо спортивного события.

Так же этот тег может использоваться для автоматической переадресации посетителя через указанное количество секунд с одной страницы на другую — указывается нужный URL.

Теперь поясним для тек, кто не знает JavaScript скрипт перенаправления посетителей:

Язык програмирования JavaScript : Объект location.

Объект location содержит информацию о местонахождении текущего документа, т.е. его интернет-адрес. Его также можно использовать для перехода на другой документ и перезагрузки текущего документа.

Свойства объекта location
hash — Имя «якоря» в интернет-адресе документа, если оно есть. (прим. код location.hash = ‘someAnchor’ не даст результата, перехода не произойдет; хотя хэш-таки изменится)
host — Имя компьютера в сети Интернет вместе с номером порта, если он указан.
hostname — Имя компьютера в сети Интернет.
href — Полный интернет-адрес документа.
pathname — Путь и имя файла, если они есть.
port — Номер порта. Если не указан, возвращает номер 80 — стандартный порт, через который работает протокол HTTP.
protocol — Идентификатор протокола. Если не указан, возвращается «http:».
search — Строка параметров, если она есть.

Методы объекта location
assign(Адрес) — Загружает документ, адрес которого передан в качестве параметра. Поддерживается только IE начиная с 4.0
reload(true|false) — Перезагружает документ с Web-сервера. Необязательный параметр — нужен только для NN: значение true заставляет Web-обозреватель перезагрузить документ с жесткого диска, где он был сохранен ранее, а false (значение по умолчанию) — прямо с Web-сервера.
replace(Адрес) — Загружает документ, адрес которого передан в качестве параметра, и заменяет в списке истории Web-обозревателя адрес предыдущего документа адресом нового.

Пользуясь объектом location, можно загрузить другой документ на место текущего. Для этого просто присвойте значение нового интернет-адреса свойству href:
document.location.href = » http://htaccess.net.ru»;

Если вы хотите полностью заменить текущий документ, чтобы даже адрес его не появлялся в списке истории, воспользуйтесь методом replace:
document.location.replace(«http://htaccess.net.ru»);

Спасибо за внимание. Перенаправления Redirect через html и/или javascript. Грамотный редирект. Пример схема механизма перенаправления.

Makag

Adult webmaster in Social Media — Tips & Tricks

Четыре варианта редиректа: Java Script, html, php и htaccess

  • 19 декабря 2015, 14:30

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

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

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

2. Html редирект

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

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

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

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

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

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

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

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

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

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

Редирект на сайте — что это и как сделать

Что такое редирект простыми словами

У каждого редиректа есть свой номер, который отвечает за его функцию. Существуют следующие виды редиректов:

  • 300 редирект — множественный выбор;
  • 301 редирект — перемещен навсегда;
  • 302 редирект — документ найден;
  • 303 редирект — смотри другое;
  • 304 редирект — документ не изменился;
  • 305 редирект — используй прокси;
  • 306 редирект — не используется;
  • 307 редирект — временный редирект;

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

Существует несколько способов сделать редирект. У каждого есть свои плюсы и минусы. Ниже мы рассмотрим каждый из них в отдельности с примерами.

1. Редирект через JavaScript

JavaScript имеет широкий набор функций для осуществления редиректа. Ниже в примере представлены различные редиректы выполненные с помощью различных функций JavaScript.

В любом из выше перечисленных вариантов будет автоматический переход на сайт http://ya.ru/

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

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

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

В общем виде редирект через файл .htaccess выглядит так:

  • КОД_РЕДИРЕКТА — здесь указывается номер редиректа (можно не указывать, по умолчанию стоит 301);
  • /АДРЕС_ОТКУДА — страница, с которой будет осуществлен переход. Обязательно должна начинаться со слэша «/»;
  • АДРЕС_КУДА — указываем полный адрес (URL) куда будет осуществлена переадресация;

Ниже мы рассмотрим несколько примеров. Советую также ознакомиться с полным руководством редиректа с помощью .htaccess.

Примеры редиректа через .htaccess

1) Редирект с www и без www

301 редирект с сайта без www на страницу сайта с www.

В данном случае будет автоматически переход с любой страница site.ru на www.site.ru соотвественно. Например

Для обратного редиректа с www на без www (www.site.ru -> site.ru) необходимо прописать следующий код:

Есть и еще варианты реализации этих перенаправлений, которые можно посмотреть в отдельной статье редирект 301 с www на без www

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

Все пользователи будут автоматически перенаправляться на домен http://site.ru/

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

Со страницы /start.html будет выполнен автоматический переход на http://site.ru/hi.html

4) Редирект при смене домена сайта (URL)

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

Например, если Вы введете в адресной строке: olddomen.ru/cat/1 , то благодаря первым двум строчкам произойдет 301 редирект на newdomen.ru/cat/1 . Ниже приведен такой же случай, но в случае если адрес сайта будет написан с www: www.domen.ru/cat/1 . Возможно, Вы сочтете это не обязательным, но поверьте, что третья и четвертые строчки кода также важны как для пользователей, так и для seo оптимизации (чтобы убрать дубли).

5) Редирект с http://site/yyyy/mm/dd/post/ на http://site/post/

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

Например, с адреса http://site/2014/11/24/primerposta/ будет 301 редирект на http://site/primerposta/ .

3. Редирект html через мета тег

Редирект html делается через мета тег с помощью атрибут refresh :

В данном случае будет выполнен редирект (автоматический переход) на http://site.ru/ через 1 секунду. В content первым параметром является секунды, а вторым URL. Если секунды не указаны, то это означает 0 (мгновенный переход).

4. Редирект php

В PHP есть специальная функция header отвечающая за различные варианты переадресации.

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

Как сделать редирект. Все виды.

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

Редирект через htaccess — самый популярный, и довольно простой способ. Чтобы его сделать, вам понадобится создать в папке сайта файл с названием .htaccess (обратите внимание, что название файла начинается с точки, это не опечатка). Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его.
Читайте ниже чтобы узнать какие именно инструкции в нем нужно прописать, чтобы создать перенаправление.

Редирект при помощи PHP — подойдет в том случае, если вы разбираетесь в PHP и знаете структуру своего сайта. Этот вариант подойдет вам, если ваш сайт написан не на CMS. В ином случае лучше используйте редирект через htaccess.

Редирект HTML — если у вас простой HTML сайт и вам нужно сделать перенаправление для одной страницы — это самый простой вариант. Сделать перенаправление для всего сайта этим способом будет трудозатратно, особенно если у вас на сайте больше 10 страниц.


Редирект при помощи JavaScript — этот способ подойдет также в том случае, если у вас простой сайт, либо если нужно сделать редирект для одной — двух страниц, либо для всего сайта в целом.

Инструкции, которые вы увидите ниже, нужно прописать в файл .htaccess в самое начало.

    Редирект всего сайта (всех страниц) на другой сайт

Пропишите эту строку в .htaccess файле, и тогда все посетители вошедшие на сайт по протоколу HTTP будут перенаправляться на защищенный протокол HTTPS.

Если вы прописываете редирект для WordPress, то обратите внимание на то, что в файле уже есть строка RewriteEngine On. Поэтому сразу под ней вам нужно добавить такие строки

В PHP редирект делается так: сервер отправляет заголовки headers браузеру посетителя, и тот переходит по нужному адресу автоматически.
Стоит отметить важный момент, отправлять заголовки можно только до вывода другой информации. То есть они должны отправляться до вывода любой другой информации через echo и до отправки кук.

    Редирект на другой сайт

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

    Редирект на другой сайт

Этот вид перенаправления удобен тем, что его код можно прописать в одном файле (в отличие от html метода), и этот файл вставить на каждой странице прописав

    Редирект на другой сайт

Файл .htaccess — настройка перенаправлений и управление конфигурацией веб-сервера

.htaccess — это конфигурационный файл веб-сервера Apache , позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.

На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.

Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта

Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.

Примеры использования файла .htaccess

1. Перенаправление доменов c синонима сайта на основной домен с кодом 301

Перенаправить запросы на domain.ru с любого из синонимов сайта

RewriteEngine On
RewriteCond % !^domain\.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]

Перенаправить запросы на www.domain.ru с любого из синонимов сайта

RewriteEngine On
RewriteCond % !^www\.domain\.ru$ [NC]
RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]

Мастер Йода рекомендует:  Первые дни в IT как вести себя в новом коллективе

Эти правила рекомендуется размещать в самом начале файла .htaccess.

2. Постоянное перенаправление с кодом 301

Если вы изменили адрес страницы сайта, добавьте в .htaccess следующие строки, чтобы запросы со старого адреса переадресовывались на новый

Redirect 301 /page.html http://www.domain.ru/new_page.html

  • page.html — адрес старой страницы относительно корня сайта;
  • www.domain.ru — имя сайта;
  • new_page.html — адрес страницы, на которую нужно выполнить перенаправление.

Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:

Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^test=123$ [NC]
RewriteRule ^period/$ http://domain.ru/ [L,R=301]

3. Переопределение страниц ошибок

При помощи файла .htaccess вы можете установить свои страницы ошибок:

#401 Авторизация не выполнена
ErrorDocument 401 http://domain.ru/errors/401.html
#403 Доступ запрещен
ErrorDocument 403 http://domain.ru/errors/403.html
#404 Страница не найдена
ErrorDocument 404 http://domain.ru/errors/404.html
#500 Внутренняя ошибка сервера
ErrorDocument 500 http://domain.ru/errors/500.html

Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге

Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:

User-agent: *
Disallow: /errors

/ваш_домен/docs/errors/.htaccess, в котором прописать

4. Постраничное перенаправление запросов на другой домен c кодом 301

Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:

Redirect 301 / http://www.newdomain.ru/

RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]

5. Ограничение доступа к сайту по IP

Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3

Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3

Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:

Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3

Запретить доступ к сайту для всех:

6. Переопределение главной страницы сайта (индексного файла каталога)

Сделать главной страницей файл menu.html:

7. Включение обработки PHP в .html-файлах

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

8. Запрет выдачи листинга каталога

В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:

9. Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl. .py

В папке c CGI-скриптами необходимо разместить файл .htaccess с содержимым:

AddHandler cgi-script .cgi .pl .py
Options +ExecCGI

Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).

Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, при помощи вашего FTP-клиента или по SSH . Также в разделе Веб-серверУправление модулями должен быть включен модуль CGI.

10. Блокировка переходов со сторонних ресурсов

Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:

RewriteEngine on
RewriteCond % baddomain\.ru [NC]
RewriteRule .* — [F]

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

RewriteEngine on
RewriteCond % baddomain\.ru [NC,OR]
RewriteCond % baddomain2\.ru [NC,OR]
RewriteCond % baddomain3\.ru [NC]
RewriteRule .* — [F]

11. Особенности использования кириллических доменов (.РФ, .МОСКВА и др.)

В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.

Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:

RewriteEngine on
RewriteCond % ^www\.site.ru [NC]
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]

В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.

12. Перенаправление с HTTP на HTTPS и обратно

Перенаправить запросы на https://domain.ru

Перенаправить запросы на http://domain.ru

3. Диагностика ошибок

Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.

Как сделать редирект на мобильную версию сайта — PHP, .htaccess и HTML

Делаем мобильный редирект 3-мя способами

Недавно один человек написал мне с просьбой подсказать, как перенаправить пользователей мобильных устройств на другую страницу. Он занимается арбитражом трафика и нужно отделить «мобильных» посетителей от «немобильных» и автоматически отправить первых на адаптированный лендинг, причём сделать это с помощью JavaScript.

Меня эта тема заинтересовала, т.к. сам я, временами занимаясь арбитражом, не догадывался автоматически разделить поток трафика исходя из устройства. Так что сейчас расскажу о 3-х способах сделать редирект на мобильную версию сайта — с помощью php, .htaccess и html (точнее — JavaScript).

Делаем мобильный редирект на PHP

Суть здесь в том, что каждое устройство сообщает серверу свой т.н. User Agent («юзер-агент»). В этом юзер-агенте находится информация о данном устройстве. Соответственно, с помощью PHP мы эту информацию извлекаем и, если по ней ясно, что устройство — мобильное, делаем редирект.

У мобильных устройств существует просто куча разных юзер-агентов. Я нашёл код, где учтены, наверное, почти все эти агенты:

Вставьте код в самое начало документа, а вместо http://site.ru/mobile/ подставьте URL, на который должны улетать мобильные пользователи. Обратите внимание, что перед этим кодом не должно быть даже пробельных символов и переводов строк — таковы уж особенности редиректов на PHP.

Передача меток и субаккаунтов на мобильный лендинг с помощью PHP

Обычно при ведении рекламных кампаний нужно получить как можно больше информации о трафике. Для этого используются, в основном, UTM-метки и субаккаунты для CPA-сетей. Хорошо бы при перенаправлении посетителя на мобильный лендинг передать и все эти данные.

Передача UTM-меток

Например, люди попадают на страницу http://site.ru/page/?utm_source=xxx&utm_medium=yyy&utm_content=zzz . Нужно, чтобы все мобильные юзеры ушли на http://site.ru/mobile/?utm_source=xxx&utm_medium=yyy&utm_content=zzz .

Для этого можно просто отрезать всё, что после ? и приклеить к мобильному URL. Однако, если исходная страница уже содержит GET-параметры, то лучше по отдельности «выцепить» все UTM-метки — это более универсальный вариант. Итоговый код получается такой:

Передача субаккаунтов

Чтобы понять принцип действия, почитайте статью про UTM-метки и субаккаунты в CPA.


Если партнёрская ссылка, по которой мобильный посетитель должен уйти, такая http://advjump.com/go/0f3c13f70409426ba0eee42428aa9b3e365b64d1eb0a0b0b/?sub >, то последняя строчка в коде выше становится такой:

Т.е. здесь мы из UTM-меток получили данные для субаккаунтов.

Мобильный редирект в .htaccess

Смысл тот же — исследуем юзер-агент. Если нужно сделать перенаправление с http://site.ru/page/ на http://site.ru/mobile-page/ , то добавьте в .htaccess такой код:

Эта конструкция должна идти после строки RewriteEngine On (если её нет — добавьте).

Если же нужно отправить всех мобильных посетителей на mobile-версию сайта (с любой страницы на http://m.site.ru/ ), то последняя строчка из кода выше может иметь такой вид:

Как передать UTM-метки и субаккаунты посредством .htaccess я рассматривать не буду, т.к. много там заморочек. Да и вообще, если вы не очень понимаете представленные здесь коды, то лучше используйте вариант с PHP или JavaScript, речь о котором дальше.

Перенаправление на мобильную версию сайта в HTML (JavaScript)

Иногда нет возможности что-то редактировать на сайте на стороне сервера — например, вы используете конструктор сайтов. Тут-то и пригодится редирект на HTML, а точнее — на JavaScript, т.к. на простом HTML нужные условия не прописать.

Если нужно перекинуть мобильных юзеров на страницу http://site.ru/mobile/ , то можно использовать такой код:

В этом случае все посетители, у которых ширина экрана меньше 600 px улетят на http://site.ru/mobile/. Если нужна меньшая ширина — меняйте 600 на меньшее значение.

Передача меток и субаккаунтов на мобильный лендинг с помощью JavaScript

При перенаправлении этим способом также можно сохранить данные о трафике.

Передача UTM-меток

Если нужно, чтобы все мобильные посетители, зашедшие на http://site.ru/page/?utm_source=xxx&utm_medium=yyy&utm_content=zzz перекинулись бы на http://site.ru/mobile/?utm_source=xxx&utm_medium=yyy&utm_content=zzz , то можно использовать следующий код:

Передача субаккаунтов

Т.е. из UTM-меток получили субаккаунты.

Какой способ мобильного редиректа лучше?

По скорости перенаправления лучше PHP и .htaccess, т.к. здесь посетитель даже не видит, что его перекидывает. Однако тут всё привязано к юзер-агенту. Если у посетителя будет неизвестный юзер-агент, то редиректа не произойдёт.

С JavaScript-редиректом юзер-агент не важен, т.к. проверяется только ширина экрана. Но здесь посетитель может заметить, как сначала попадает на одну страницу, а потом его перекидывает на другую.

Так что решайте сами, какой вид мобильного редиректа вам больше по душе

  • Что дают социальные ссылки Многие владельцы веб сайтов задумываются о целесообразности покупки.
  • Как быстро собрать семантическое ядро с помощью инструментов PromoPult Подбор семантики — это начальный этап SEO. Сгруппированные ключевые фразы служат ос.
  • CPAtext — обзор нового CPA-сервиса от создателей Admitad Пару дней назад ко мне обратилась подписчица с просьбой сделать подробный.
  • Скидка 7.77% в Seohammer.ru в черную пятницу . ым предложением, которого больше в этом году уже не будет.. А для читателей этого
  • Какие сайты бывают в интернете . ые возможности. Создать сайт на HTML, очень легко, для этого, можно использовать всего

Способ на ява скрипт наиболее оптимальный, но само перенаправление происходит медленнее.

Очень хорошая статья, но почему то у меня не работает способ Передача меток на мобильный лендинг с помощью PHP.
Может есть какая то хитрость?

А способ со скриптом не работает в некоторых телефонах, хотя разрешение у них явно меньше 800 px.

Хитростей нет, возможно, что-то упустили — не поставили кавычки где-нибудь и т.п.
Ошибка может быть либо при передаче меток на лендинг, либо при приёме их на лендинге.

Огромнейшее СПАСИБО. я все голову ломала, как перекинуть пользователей на мобильную версию, все сработало ОТЛИЧНО. Подробно и ясно, особенно для меня, чайника просто все разжевано. Еще раз вам ОГРОМНОЕ спасибо! =) =) =)

Пиз*дец как у меня пригорело, когда не мог допереть почему у меня телефон не редиректит на мобильную версию. Это статья баян. И телефоны уже с расширениеМ экрана получше. ВЫСТАВЛЯЙТЕ СМЕЛО 1200 ЗА МЕСТО 600. *HELP* *MACHO*

Спасибо большое! Пробовал много вариантов, но именно ваш скрипт помог =)

статья очень полезная — спасибо! но в жизни вопрос гораздо сложнее))) владельцы сайтов хотят чтоб смартфоны/телефоны получали мобильную версию, но при этом видели бы кнопку или ссылку на полную версию сайта, и могли бы ее тоже открыть. а этож надо еще что-то придумывать — куки или может еще что-то

Ну да, тут попридумывать ещё надо.

Спасибо за информацию неделю маялся как с не адаптивного битрикса перекидывать на мобильную версию сайта, попробую сделать по вашей рекомендации — если получится отпишусь с рекомендацией

Петр, спасибо огромное! Статья крайне полезная и четкая.
Отдельное спасибо за информацию по передаче UTM!

Правда, лично мне, был бы крайне полезен код для переадресации с utm-метками через .htaccess. Ибо сайт сделан на Adobe Muse и со скриптом .php почему-то не получается.

Буду Вам очень признателен, если поделитесь готовым решением и для .htaccess с UTM!

Я, наверное, перерыл всю информацию о мобильных версиях в сети. Изначально хотел сделать самостоятельно отдельную мобильную версию сайта на поддомене. Но узнал, что поисковые системы гораздо лучше относятся именно к адаптации сайта под рвзные устройства. Потому что используется один контент и одна ссылка. Начал пробовать сделать адаптацию своими руками, но там очень много подводных камней. Стили нужно прописывать чуть ли не под каждый гаджет. Т.е. под каждую ширину экрана нужно создавать новые параметры отображения всех блоков. Решил найти специалиста, который разбирается в этом. Это тоже оказалось не так просто. Разброс цен аховый. От 500 руб до 100 000 руб. Понятное дело — решил начать с 500))
После общения, конечно же, оказалось что адаптация моего сайта стоит не 500 руб, а 17 000 руб)))
Но после долгих поисков нашел оптимальный вариант по всем параметрам. Адаптацию сайта поручил им mobile-version.ru и не пожалел. Сразу сказали адекватную стоимость уже на своем сайте и потом она не изменилась. Все мои пожелания выполнени и даже внесли свои предложения бесплатно! Теперь мой сайт проходит тесты от гугла, и яндекс вебмастер тоже счастлив, наблюдая за моим сайтом.
Для тех, кто еще сомневается — делать или не делать адаптацию — ДЕЛАЙТЕ. 8)
Поисковики заставят сделать мобильные версии всем сайтам. Вопрос времени.

Подскажите пожалуйста, у меня на хостинге нет поддержки php, сайт prestigechat.ru. В страницу HTML вписываю код:

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

Перенаправления с помощью .htaccess, PHP, HTML и JavaScript

Содержание

Работа с .htaccess

.htaccess (с точкой в начале имени) — это файл-конфигуратор Apache-серверов, который дает возможность настройки работы сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache перенаправляя посетителей на специальные страницы ошибок. .htaccess представляет собой обычный текстовый документ с расширением htaccess. Данный файл обычно находится в корне сайта, однако вы можете создавать и дополнительные .htaccess-файлы для различных директорий вашего сайта.

Mod_rewrite — модуль, используемый веб-серверами для преобразования URL’ов.

Редирект .htaccess

Простой редирект

Ставится в файле .htaccess . / и означает, что всё с верхнего уровня сайта, включая все подкаталоги, будет переадресовано (не забывайте поставить последний / ). Если вы хотите переадресовать только страницу, сохранив PR старой страницы, можно сделать так:

/old/old.htm — путь и имя старой страницы,
http://www.you.com/new.htm — новый путь и новое имя перемещенной страницы.

Редирект на любую страницу по ip пользователя или при запросе конкретной страницы (а также по маске имени)

Если у пользователя ip 192.152.37.125, то он будет перенаправлен на страницу user.php :

Редирект при запросе определённых файлов
Если запрашиваются файлы, расширение которых не указано в файле .htaccess (gif и jpg), то следует перенаправление:

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

Редирект с регулярным выражением

Прописывается в файле .htaccess.

(.*) RedirectMatch фактически соответствует регулярным образцам выражения после доменного имени. Таким образом, нельзя выполнить соответствие образца на ^/yourdomain.ru . Однако, можно преобразовать страницы с использованием .html расширения к файлам того же самого названия, но с .php расширением:

Если необходимо сделать различное перенаправление для отдельных страниц, можно использовать следующее:

RedirectMatch Permanent — это эквивалент «RedirectMatch 301», строка с *(Wildcard) должна быть последней в этом списке.

Создание удобно читаемых URL

Чтобы преобразовать, например, www.site.ru/product.php? >

В следующем примере преобразуем www.site.ru/script.php?product=123 в www.site.ru/cat/product/123/:

Редирект на PHP

Надо создать страницу при обращении к которой будет происходить редирект и разместить её на сервере. Лучше укажите HTTP/1.1 (а не HTTP/1.0 или HTTP/0.9, которые не поддерживают виртуальный хостинг).

Редирект всех файлов в папке на один файл

Например вы больше не нуждаетесь в разделе сайта Super discount и хотите перенаправить все запросы к папке /superdiscount на один файл /hot-offers.php . Для этого добавляем в .htaccess следующий код:

Редирект всей папки кроме одного файла
В следующем примере все файлы из папки /superdiscount будут редиректится на на файл /hot-offers.php , КРОМЕ файла /superdiscount/my-ebook.html который должен редиректится на /hot-to-make-million.html

Редирект динамического URL на новый файл

Данный вариант пригодится, если вы хотите редиректить динамический URL с параметрами на новый статический файл.

То есть теперь, запрос к файлу вида http://www.kass.ws/article.jsp? > и/или http://www.kass.ws/article.jsp? > будет отправлен на файл http://www.kass.ws/latestnews.htm .

Массовый редирект новых файлов

Теперь перейдем к самому сложному моменту, когда вам надо редиректить массу URL-ов, например после смены вашей CMS.

Тут сразу возникает ряд проблем: во-первых, внесение всех изменившихся адресов в .htaccess файл займет очень много времени, да и само по себе занятие малоприятное.

Во-вторых, слишком много записей в .htaccess файле будут тормозить Apache сервера.

И в-третьих, при внесении такого количества информации высока вероятность, что вы где-то ошибетесь.

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

Предположим, вы перешли на новую систему ссылок на вашем сайте и все файлы оканчивающиеся на старый id должны быть средирекчены. Сначала создаем в базе таблицу, которая содержит старый id и новый URL для редиректа. old_id INT new_url VARCHAR (255) Далее пишем код который свяжет ваши старые id с новыми URL-ами

После этого, добавляем следующую строчку в .htaccess:

затем создаем PHP-файл redirectold.php , который будет поддерживать 301 редирект:

Теперь все запросы к вашим старым URL-ам будут вызывать redirectold.php , который найдет новый URL и вернет 301 ответ с вашей новой ссылкой.

Редиректы в зависимости от времени

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

Как это может быть сделано через mod_rewrite? Есть много переменных названных TIME_xxx для условий редиректа. В связке со специальными лексикографическими образцами для сравнения STRING и =STRING мы можем производить редиректы зависящие от времени:

Это выдает содержимое foo.day.html при запросе URL foo.html с 07:00 до 19:00 а в оставшееся время содержимое foo.night.html .

Убираем у всех запросов вначале «WWW.»


Меняем расширение .html на .php

Иногда бывает так, что у вас статичный веб-сайт, а вам необходимо, чтобы на нем срабатывал какой-нибудь php-скрипт. Для этого вам необходимо сказать серверу, чтобы он обрабатывал эту страницу как php-файл.

AddHandler application/x-httpd-php .html

Этот прием можно использовать и для других расширений файлов:

Запрещение доступа в конкретную директорию

Запрещаем доступ для всех ко всем файлам в директории deny from all
к конкретному файлу:

по ip пользователя:

Доступ в данную директорию будет разрешён только пользователю с ip 192.152.37.125.

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

Директива Options -Indexes — запрет на отображение содержимого каталога при отсутствии индексного файла.

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

В этом случае, вместо списка файлов в каталоге посетитель получит HTTP ошибку 403 — access forbidden.

Запрет доступа к файлам с несколькими типа расширений

Запрещен доступ к файлам с расширением .inc, .conf и *.cfg. Хотя директива, по умолчанию, не работает с регулярными выражениями, но их можно включить поставив символ тильды(

) в опциях директивы. Синтаксис следующий: [тильда] [пробел] [далее_все_без_пробелов] Чтобы блокировать этот доступ, запишем следующее:

RewriteRule ^.htaccess$ — [F]

Это значит, что если кто-то пробует обращаться к файлу .htaccess, система должна произвести код ошибки ‘HTTP response of 403’ или ‘403 Forbidden — You don’t have permission to access /.htaccess on this server’.

Конструкция ^.htaccess$ в этом регулярном выражении означает:

^ — якорь начала строки
$ — якорь конца строки
. — в регулярных выражениях точка . обозначает мета-символ и должна быть защищена обратным слэшем (backslash), если вы все-таки хотите использовать именно фактическую точку.

Имя файла должно быть расположено точно между начальным и конечным якорем. Это будет гарантировать то, что только это определенное имя файла (и никакое другое) сгенерирует код ошибки.

[F] — специальный ‘запрещающий’ флажок (forbidden).
[NC] — не учитывать регистр букв.
[OR] — означает ‘или следующее условие’.

Определение кодировки

Определение кодировки, в которой сервер «отдает» файлы

Варианты: KOI8-R, UTF-8, Windows-1251

Определение кодировки на загружаемые файлы

Пароль на директорию

Инструкция как закрыть папку паролем находится — НА ЭТОЙ СТРАНИЦЕ

Свои страницы ошибок

Инструкция на создание своих страниц ошибок находится — НА ЭТОЙ СТРАНИЦЕ

IE игнорирует страницы размером меньше 512 байт.

Индексация директорий и поддиректорий

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

Эта директива задает файл, который будет вызван при обращении к директории без указания имени файла.

Можно указать несколько индексных страниц. При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл index.html , то будет произведен поиск файла index.php и т.д.

DirectoryIndex index.html index.php index.shtml

Мы рекомендуем делать переадресацию с пустых директорий либо на главную страницу сайта, либо на другую подходящую страницу. Например, директорию www.site.ru/pic/ можно переадресовать на www.site.ru .

Защита изображений

Часто веб-мастера нагло копируют контент с вашего сайта вместе с рисунками, причем рисунки подгружаются с вашего же сервера. Это создает лишний трафик, что, зачастую, приводит к ряду проблем.

Защититься от таких веб-мастеров и не помешать поисковым роботам индексировать изображения достаточно просто:

hotlinker.gif — изображение, которое будет отображаться, вместо истинных изображений. Рекомендуем в этом изображении отобразить ваш логотип и ссылку на ваш сайт.

Еще один варинат запрета доступа к картинкам с неразрешенных сайтов:

Поисковые машини и разного рода сканеры создают коллосальный трафик на вашем сайте. Нижеприведенный блок кода позволит запретить доступ ботам на сайт.

Обращения к robots.txt

Чтобы иметь больше информации о посещении поисковиков, полезно иметь подробную информацию об обращении к файлу robots.txt . Для того, чтобы оганизовать это, в ‘.htaccess’ должны быть следующие записи:

Теперь при запросе файла robots.txt наш RewriteRule переадресует посетителя (робота) к обрабатывающему запросы скрипту robot.php .
Кроме того, переменная передается скрипту, которая будет обработана в соответствии с вашими нуждами. REQUEST_URI определяет имя запрашиваемого файла. В данном примере это robots.txt . Скрипт прочтет содержание robots.txt и отправит его web-браузеру или роботу поискового сервера. Таким образом, мы можем считать хиты посетителей и вести лог-файлы.

PHPSESSID

Для отключения добавления PHPSESSID к URL вставьте в начало index.php:

ini_set(«session.use_trans_sid», 0); , либо в .htaccess пропишите:
php_flag session.use_trans_sid Off

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

Директивы кеширования

Кэширование для всех типов файлов по времени доступа

Кэширование для всех типов файлов по времени изменения

Кэширование для определённых типов файлов

Запрет кеширования с помощью сервера Apache

Впишите в .htaccess следующее:

Необходимые заголовки будут передаваться автоматически и специально писать их в PHP уже не нужно — кэш уже выключен!

Кеширование с помощью файла .htaccess

Кеширование javascript файлов с помощью файла .htaccess

Будьте осторожны при кешировании, т.к. при изменении файла пользователь может получить новый вариант только через 3 дня!

Работа php в html

Пропишите в своем файле .htaccess следующие строки:

Поиск страниц больше чем в одном каталоге

Иногда необходимо позволить веб-серверу искать страницы больше, чем в одном каталоге.

RewriteEngine on

Поддомены для пользователей

Если Вы хотите предоставлять адреса www.subdomain.domain.ru для страниц пользователей, вы можете использовать следующий набор правил для преобразования http://www.subdomain.domain.ru/path во внутренний путь /home/login/path :

Повреждение бинарного файла

Если при передаче файлов через формы (при указанном enctype=«multipart/form-data» ) бинарные данные повреждаются, пропишите в /cgi-bin/.htaccess директиву:

Ошибка SWF файлов

Ошибки при обращении к страницам, содержащим ключевые слова, типа $_REQUEST .

Такое может происходить из-за установленного модуля в Apache. По умолчанию он блокирует в запросах строки с SQL аргументами и другими потенциально опасными командами.

Возможные сообщения об ошибке:

Forbidden You don’t have permission to access /adm/index.php on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Запрос небезопасен и был отвергнут.

Добавьте в .htaccess следующее:

Для сообщения: «POST /wp-admin/async-upload.php HTTP/1.1» 406 354 «-» «Shockwave Flash» можно снять защиту только на загрузку файлов на сервер:

Оптимально снимать защиту только с той папки, в которой это необходимо, не убирая защиту со всего сайта.

Склейка страницы (301)

Обычно код главной страницы физически расположен в файле index.html или index.php, но сайт должен открываться по любому из запросов: yoursite.ru, yoursite.ru/index.html, www.yoursite.ru и www.yoursite.ru/index.html. Но для поисковых систем это четыре разные URL! Если не настроить .htaccess верно, поисковик добавит в свой индекс четыре одинаковые страницы. Это признак некачественного сайта. Избежать этой проблемы можно с помощью такого кода в .htaccess:

Все страницы-дубли будут склеены редиректом с кодом 301 с главной страницей – http://www.yoursite.ru/ . Дубли страниц без слэша в конце URL.

Чтобы предотвратить ситуацию с индексированием страниц www.yoursite.ru/about и www.yoursite.ru/about/ как разных, ставим следующий код:

Со страниц без слэша будет установлен редирект на «слэшевые».

Принудительная постановка замыкающего слеша

Следующий код всегда будет добавлять слеш в адрес URL вашего сайта, что хорошо помогает в области SEO сайта:

Загрузка файлов вместо открытия

Многие видели, как при попытке скачать архив с расширением .rar браузер открывает его в виде простого текста из мешанины символов. Это значит, что на сервере сайта не настроено принудительное сохранение типов файлов, которые не должны открываться в браузере:

AddType application/octet-stream .rar .doc .mov .avi .pdf .xls .mp4

Сжатие страниц


Междоменные шрифты для FF

При использовании встроенных шрифтов Firefox не позволяет брать их с внешних сайтов. Следующий код для файла .htaccess позволит обойти данное ограничение:

PHP в JavaScript

При разработке кода JavaScript иногда требуется использовать PHP в файлах .js, например, для получения данных из базы данных:

Разложить файлы robots.txt, sitemap.xml и т.п. в папки доменов

Если есть запрашиваемый файл из корня сайта, в папке домена, то перенаправляем его туда:

Блокируем User Agents

Если вы столкнулись с проблемой, что какие-то типы User Agent нагружают ваш сервер ненужными запросами, то от них можно избавиться добавив в .htaccess следующие строчки:

Переадресация по языку

Переадресация с http на https

Защита картинок от скачивания по ссылкам на других сайтах

Включая переходы без REFERER, т.е. когда адрес указывают в строке браузера:

Только по ссылкам на чужих сайтах:

Блокировка пользователей с определенным рефером

Если вы не хотите, чтобы пользователи переходя с определенных сайтов попадали на ваш, вы можете это запретить:

Как сделать редирект: подробный обзор для гуманитариев

Время чтения: 16 минут Нет времени читать? Нет времени?

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

Что такое редиректы и зачем они нужны

Редирект — перенаправление пользователя с одного URL на другой. Например, при переходе по ссылке http://texterra.ru/blog/ браузер автоматически перенаправляет пользователя на URL https://texterra.ru/blog/.

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

В данном случае донор – страница, с которой перенаправляются пользователи. Акцептор – страница, на которую направляются пользователи.

Вот примеры использования редиректов:

  • Перенаправление с http на https. Пример указан выше.
  • Перенаправление с URL с www на URL без www и наоборот. При переходе по ссылке https://tinkoff.ru браузер перенаправляет пользователя на https://www.tinkoff.ru. При переходе по ссылке https://www.vc.ru браузер перенаправляет посетителя на https://vc.ru/.
  • Переезд сайта на другой домен. Пару лет назад коллеги из популярного издания отказались от названия «Цукерберг позвонит» и настроили редирект с адреса http://siliconrus.com на https://vc.ru/.
  • Перенаправление трафика с одной страницы сайта на другую. Например, если в интернет-магазине нет какого-то товара, он может перенаправить трафик на страницу похожего продукта.
  • Перенаправление пользователей на мобильную версию сайта. Если владелец ресурса использует для адаптации к мобильному трафику только мобильную версию сайта, он настраивает редирект мобильных пользователей с www.example.au на www.m.example.au.

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

Какие бывают виды редиректов и когда их используют

Для пользователя все редиректы одинаковы: при попытке перейти по одному URL они попадают на другой URL. Обычно интернет-серферы даже не замечают, что браузер перенаправил их с одного адреса на другой.

Браузеры и роботы поисковых систем определяют вид редиректа по коду состояния HTTP. Перенаправления могут иметь разный HTTP-статус: 301, 302, 303, 307. Рассмотрим каждый подробнее.

Редирект 301

Это самый распространенный вид перенаправления. HTTP-статус 301 значит, что ресурс навсегда перемещен с запрошенного URL на новый. После получения ответа 301 браузер делает новый запрос и перенаправляет пользователя на актуальную страницу.

Если вы используете редирект 301, авторитет и ссылочный профиль старой страницы передаются на новую. Например, не бойтесь потерять вес входящих ссылок при переводе сайта на безопасный протокол соединения. Корректный редирект 301 с http на https сохраняет эту характеристику ресурса и его конкретных страниц.

Редирект 302

В HTTP 1.0 статус 302 использовался для обозначения временного перемещения запрошенного ресурса на новый адрес. В HTTP 1.1 редирект 302 обозначает статус «Найдено» или Found. То есть ресурс существует, но владелец на некоторое время переместил его на новый адрес. Редирект 302 не передает авторитет и ссылочный профиль донора акцептору.

В HTTP 1.1 для временного перенаправления предложены редиректы 303 и 307. Это связано с некорректной обработкой статуса 302 в некоторых браузерах.

По стандартам HTTP 1.0 браузер после получения ответа 302 должен использовать для нового запроса метод POST. Разработчики некоторых браузеров не соблюдают этот стандарт и используют для нового запроса метод GET. В HTTP 1.1. эту проблему решают редиректы 303 и 307.

Вместо 302 для временного перенаправления лучше использовать редиректы 303 и 307.

Редиректы 303 и 307

В HTTP 1.1 статус 303 предложен вместо редиректа 302. Значение кода – See Other или «Смотрите другой ресурс». Для нового запроса браузер должен использовать метод GET. Применяйте редирект 303, когда у вас нет адекватного ответа на запрос пользователя, но имеется более или менее подходящая замена.

Редирект 303 подходит, когда на целевой странице есть формы. В этом случае важно, чтобы браузер делал запрос безопасным методом GET.

Статус 307 также используется вместо редиректа 302. Значение кода – Temporary Redirect или «временное перенаправление». Браузер не должен менять метод нового запроса. Запросы безопасными методами GET и HEAD выполняются автоматически. Запросы небезопасными методами, например, POST, выполняются с подтверждением пользователя.

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

Промежуточный вывод: в большинстве случаев владельцам сайтов подходит редирект 301. В этом случае HTTP-статус уведомляет поисковых роботов, что документ навсегда перемещен на новый адрес. Этот вид редиректа передает авторитет и ссылочную массу со страницы-донора на страницу-акцептор. Редиректы 303 и 307 используются, когда владелец сайта хочет временно перенаправлять пользователей с одного документа на другой.

Какие типы редиректов бывают

Редиректы классифицируются по способу реализации. Настроить перенаправление можно через файл .htaccess или nginx.config, средствами PHP, HTML, JavaScript. Подробнее о каждом типе ниже.

Что такое htaccess-редирект

Так называют серверный редирект, который настраивается в файле .htaccess для сайтов, которые находятся на серверах под управлением Apache.

Чтобы настроить перенаправление, внесите изменения в файл .htaccess. Для доступа к файлу воспользуйтесь FTP-клиентом, например, FileZilla. В настройках программы в меню «Сервер» включите принудительное отображение скрытых файлов. Файл .htaccess находится в папке с названием доменного имени ресурса в каталоге public_html.

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

В интерфейсе FTP-клиента FileZilla слева доступны файлы и папки локального компьютера, а справа — файлы и папки удаленного сервера.

Также доступ к файлу .htaccess можно получить через панель управления хостингом. В cPanel откройте раздел интерфейса «Файлы – Диспетчер файлов».

В настройках диспетчера включите отображение скрытых файлов.

Скачайте файл на компьютер и отредактируйте. Также файл можно редактировать через cPanel.

Чтобы отредактировать файл .htaccess, откройте его в блокноте. Добавьте код редиректа. Сохраните изменения и загрузите файл на сервер.

О коде редиректов и настройках конкретных перенаправлений пойдет речь ниже.

Чтобы настроить редирект на сервере под управлением Nginx, нужно добавить код перенаправления в конфигурационный файл nginx.conf. Код добавляется в блоке server. Получить код редиректа можно с помощью конвертера.

PHP-редиректы

PHP-редирект работает на уровне сервера. Этот способ перенаправления считается менее предпочтительным по сравнению с редиректом через файл .htaccess, так как он работает медленнее. Но в некоторых случаях предпочтительнее использовать этот тип редиректа.

Например, если на сайте есть десятки страниц, для которых нужно прописать редирект, а также десятки страниц, для которых редирект не нужен, лучше настраивать перенаправления с помощью PHP.

Скачайте на жесткий диск файл index.php или откройте его для редактирования в диспетчере файлов панели управления хостингом. Файл находится в корневой папке сайта. Там же находится файл .htaccess.

Добавьте в файл index.php код редиректа. Сохраните изменения и загрузите файл на сервер.

JavaScript-редирект

Редирект с помощью кода JavaScript выполняется на стороне браузера, а не на стороне сервера. Чтобы посетитель попал со старой страницы на новую, скрипт редиректа должен полностью загрузиться в обозревателе. Поэтому JavaScript-редирект – более медленный способ перенаправления, чем серверные редиректы. Еще одна проблема — автоматическое перенаправление не сработает, если пользователь отключил в браузере JavaScript.

Тем не менее JavaScript-редиректы в некоторых случаях удобны. Например, их можно использовать для перенаправления с задержкой. Вы можете написать на старой странице сообщение вроде «Мы переехали на новый сайт, сейчас вы будете автоматически туда перенаправлены». Через несколько секунд пользователь автоматически попадет на новую страницу.

Чтобы реализовать перенаправление с помощью JavaScript, добавьте код редиректа между тегами и страницы, с которой нужно перенаправить пользователей. На сайтах под управлением WordPress это можно сделать с помощью бесплатного плагина Per page add to head.

Сохраните изменения на странице и проверьте, как работает редирект.

HTML-редирект

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

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

Сохраните изменения и проверьте, как работает перенаправление.

Промежуточный итог: предпочитайте серверные редиректы, так как они удобнее для пользователей. В большинстве случаев перенаправление лучше настраивать через конфигурационный файл .htaccess для серверов на Apache и nginx.config для серверов на Nginx.

Где взять код редиректа

Если у вас нет соответствующей подготовки и знаний, есть два варианта. Можно обратиться к специалисту или воспользоваться онлайн-генератором кода. Подборка сервисов ниже сэкономит вам время и деньги:

  • 301 Redirect Code Generator. Генерирует код редиректа для Apache, ASP и ASP.NET. Также создает код JavaScript и HTML-перенаправлений.
  • Seomagnifier. Создает код редиректа 301 с домена с www на домен без www и наоборот.
  • 301 Redirect Code Generator Tool. Создает редиректы со страницы на страницу, а также с домена без www на домен с www. Генерирует PHP-код, перенаправления для серверов на ASP и ASP.NET, HTML- и JavaScript-перенаправления.
  • Генератор файла .htaccess. Создает код редиректов со страницы на страницу, а также между разделами сайта, генерирует скрипты перенаправлений с домена с www на домен без www.
  • Универсальный генератор кода перенаправлений для .htaccess. Можно выбрать сценарий редиректа, указать URL и сгенерировать код.
  • Генератор редиректов 301. Создает код перенаправлений для серверов на Apache, ASP, ASP.NET, а также код HTML- и JavaScript-редиректов.
  • Генератор перенаправлений от Brontobytes. Поможет настроить редирект со старого домена на новый, изменить адрес отдельных страниц и разделов ресурса, настроить перенаправление с домена без www на домен с www.
  • Пользователям серверов на Nginx будет полезен конвертер кода. Он трансформирует редиректы для .htaccess в перенаправления для nginx.config.

По данным британской компании Netcraft на ноябрь 2020 года, 44 % активных сайтов работают на серверах под управлением Apache. 21 % ресурсов работает на серверах под управлением Nginx. Доля серверов с другим ПО не превышает 8 %.

Как делать редиректы: популярные примеры

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

Как сделать редирект с http на https

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

  1. Скачайте конфигурационный файл на жесткий диск или откройте его для редактирования в панели управления хостингом.
  2. Сгенерируйте код редиректа с помощью одного из предложенных выше сервисов.
  3. Добавьте код в файл, сохраните изменения и загрузите .htaccess на сервер.

Корректно перевести сайт на безопасный протокол помогут следующие ресурсы:

  • Рассказ нашего маркетолога Тимура Фехрайдинова об опыте и особенностях перевода на безопасный протокол сайта «Текстерры».
  • Техническая инструкция по переводу на https сайта на WordPress, включая тактику работы с Google Search Console и «Яндекс.Вебмастер».
  • Плагин для WP Really Simple SSL. За минуту решает все технические задачи, связанные с установкой SSL-сертификата и переводом сайта на безопасный протокол.

Как сделать редирект с или на www

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

  1. Загрузите на жесткий диск файл index.php.
  2. Сгенерируйте код редиректа.
  3. Вставьте код в файл, сохраните изменения и загрузите index.php на сервер.
  4. Укажите основной URL в настройках сайта. В WordPress это можно сделать в меню «Настройки – Общие».


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

Проверьте, как работает перенаправление. На иллюстрации ниже видно, что до настройки редиректа сайт был доступен по двум URL. После изменения файла index.php ресурс доступен по одному адресу.

Как настроить перенаправление с одной страницы

Чтобы настроить редирект с одной страницы на другую, отредактируйте файл .htaccess или index.php: добавьте в него сгенерированный код редиректа. Если сайт работает на WordPress, воспользуйтесь для настройки редиректов плагинами:

  • Simple 301 Redirects. О настройках читайте в статье про зеркало сайтов.
  • Redirection. Инструкция по настройке смотрите в нашей статье «Лайфхаки для пользователей WordPress».
  • Redirect. Добавляет блок настройки редиректов на страницу редактирования публикаций.

Перенаправления можно настраивать через панель управления сервером. В cPanel настройки доступны в разделе «Домены – Перенаправления». Инструкцию смотрите в статье о зеркалах сайтов.

Как настроить редирект при смене домена

При переезде на новый домен перенаправление настраивается так же, как редиректы с http на https или с домена с www на домен без www. Изменения можно внести через файл .htaccess или index.php.

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

Добавьте код в файл .htaccess и сохраните изменения.

Как сделать редирект папки

Редирект папки (каталога, директории) можно настроить с помощью файлов .htaccess или index.php. Настройка перенаправлений может понадобиться, если в URL страниц отображаются названия директорий.

Например, в блоге о книгах URL может выглядеть так: https://exampleblog.ru/klassica/idiot. Автор создает отдельный каталог для русской классики и хочет, чтобы URL выглядел так: https://exampleblog.ru/russkaya-klassica/idiot. В .htaccess нужно добавить такой код:

RedirectMatch 301 ^/klassica/(.*)$ /russkaya-klassica/$1

Частные случаи: редирект слэша и редирект расширения

Одни владельцы сайтов предпочитают URL со слэшем в конце, а другие без слэша: https://exampleblog.ru/page/ и https://exampleblog.ru/page соответственно. Поисковые системы считают варианты со слэшем и без него разными URL. Поэтому важно выбрать предпочтительную структуру сетевых адресов и настроить перенаправления.

Сгенерируйте код редиректа и добавьте его в файл .htaccess. Убедитесь, что отметили галочкой нужную опцию.

Чтобы настроить перенаправления с адреса с расширением на адрес без расширения, сгенерируйте код и добавьте его в конфигурационный файл. Редирект с URL с расширением .html на URL с расширением .php выглядит так:

RewriteRule index\.html index.php [NC,R]

С помощью генератора можно получить код для других перенаправлений, например, для редиректов с поддомена на каталог или с верхнего регистра на нижний.

Как проверить редирект

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

Чекеры показывают вид редиректа и статус ответа сервера при переходе на новый адрес.

Сделать редирект просто

Для этого в первую очередь выберите вид редиректа. В большинстве случаев подходит перенаправление 301 или постоянный редирект. Иногда для временного перенаправления стоит использовать редирект 303 и 307.

Перенаправление на страницу html. Перенаправления с помощью.htaccess, PHP, HTML и JavaScript

Что такое редирект простыми словами

Редирект (англ. «Redirect») — это автоматическое перенаправление пользователей с одной страницы сайта на другую страницу (причем как в пределах одного сайта, так и на внешние сайты). Для поисковых систем редирект применяется для склейки адресов страниц.

У каждого редиректа есть свой номер, который отвечает за его функцию. Существуют следующие виды редиректов:

  • 300 редирект — множественный выбор;
  • — перемещен навсегда;
  • 302 редирект — документ найден;
  • 303 редирект — смотри другое;
  • 304 редирект — документ не изменился;
  • 305 редирект — используй прокси;
  • 306 редирект — не используется;
  • 307 редирект — временный редирект;

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

Существует несколько способов сделать редирект. У каждого есть свои плюсы и минусы. Ниже мы рассмотрим каждый из них в отдельности с примерами.

1. Редирект через JavaScript

JavaScript имеет широкий набор функций для осуществления редиректа. Ниже в примере представлены различные редиректы выполненные с помощью различных функций JavaScript.

В данном коде создаётся функция с переадресацией на нужную страницу, а затем вызывается в функции 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 % ^site.com
RewriteRule (.*) http://www.site.com/$1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JavaScript – Перенаправление страницы

Что такое Перенаправление страницы?

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

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

Как работает переадресация страницы?

Пример реализации перенаправления страницы следующий:

Пример 1

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

Пример 2

Вы можете показать соответствующее сообщение для ваших посетителей сайта, а затем перенаправить их на новую страницу. Для этого потребуется задержка времени, чтобы загрузить новую страницу. В следующем примере показано, как реализовать то же самое. Здесь SetTimeout () является встроенной функцией JavaScript, которая может быть использована для выполнения другой функции по истечению заданного интервала времени.

Вывод

Пример 3

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий