Переадресация веб страниц

Содержание:

Редирект в .htaccess (RewriteEngine)

Синтаксис:

Redirect  URL-path URL-to-redirect

Необязательный параметр — это три цифры — код редиректа (например, 301). Если не указан, то по умолчанию подставляется 302.

— часть запрашиваемого пользователем (или поисковиком) адреса, которая должна обязательно начинаться со слеша (/)

— полный адрес сайта (и, возможно, часть пути), на который будет осуществляться редирект. Должен быть вида http://site.ru/ — то есть обязательно должен присутствовать протокол (http://) и закрывающий адрес сайта слеш (/).

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

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

Действие директивы аналогично , но в параметрах URL-regexp и URL-to-redirect можно использовать регулярные выражения.

// должно быть включено (on) для работы RewriteRule
RewriteEngine on 
RewriteRule URL-regexp URL-to-redirect ]

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

Примеры использования:

Redirect / http://yandex.ru/yandsearch?text= # Выполнится 302 редирект (по умолчанию) на поиск в Яндексе символов, введенных в адресную строку после названия Вашего сайта.

# То есть если посетитель введет http://ваш_сайт.ru/page, то браузер его перенаправит на http://yandex.ru/yandsearch?text=page

Redirect 301 /hello.html http://google.ru/search?q=bye # В случае перехода на страницу http://ваш_сайт.ru/hello.html выполнится 301 редирект на поиск в Гугле фразы "bye".

RedirectMatch (.*)\.jpg$ http://хостинг_для_картинок$1.jpg # "Временно" (по умолчанию действует 302 редирект) переадресовываем все запросы jpeg-картинок на какой-либо бесплатный хостинг

# или то же самое, но с применением RewriteRule:
RewriteEngine on
RewriteRule (.*)\.jpg$ http://хостинг_для_картинок$1.jpg 

Настраиваем отображение сайта

Посмотрим, что можно сделать с отображением всего ресурса или его разделов в браузерах пользователей при помощи .htaccess.

10. Заменяем индексный файл

Индексный файл — тот, что открывается по умолчанию при обращении к определенному каталогу. Обычно они называются: index.html, index.htm, index.php, index.phtml, index.shtml, default.htm, default.html.

Вот как это выглядит в структуре каталога:

Чтобы заменить этот файл на любой другой, размещаете в каталоге .htaccess и добавляете эту команду:

Вместо «hello.html» вписывайте адрес желаемого файла.

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

11. Добавляем или убираем html в конце URL

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

Чтобы убрать .html:

Этими же директивами можно добавить/убрать расширение php.

12. Настраиваем кодировку

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

  • UTF-8 — универсальная
  • Windows-1251 — кириллица
  • Windows-1250 — для Центральной Европы
  • Windows-1252 — для Западной Европы
  • KOI8-R — кириллица (КОИ8-Р)

Чаще всего используют UTF-8 и Windows-1251.

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

Пример директивы, которая задает для файла кодировку UTF-8:

А такая команда означает, что все загружаемые на сервер файлы будут преобразованы в Windows-1251:

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

13. Создаем кастомные страницы ошибок

При помощи правил в .htaccess можно настроить отображение специально созданных страниц для самых популярных ошибок, например:

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

Зачем это нужно? Например, чтобы не потерять пользователя на странице 404, а дать ему возможность перейти в другие разделы сайта:

PHP редирект ссылок в два этапа

1.linkslist.php – хранит массив внешних (реферальных) ссылок для редиректа, его код:

<?php
      $linksList = array(
          'page1.html' => 'http://www.google.com',
          'page2.html' => 'http://www.php.net'
      );
      ?>

2. redirect.php – php скрипт анализа ссылки и выполнения перерхода:

<?php
      require_once('linkslist.php');
 
      $request = $_SERVER'REQUEST_URI';
      $dest = explode('/', $request);
      $newUrlKey = end($dest);
 
      if (array_key_exists($newUrlKey, $linksList)) {
          header('Location:'.$linksList$newUrlKey);
      }
      else {
          header('Location:http://www.simplecoding.org');
      }
      ?>

3. Файл .htaccess – передает запросы скрипту redirect.php.

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^get/(.+) /pages/redirect.php/$1 
</IfModule>

После этого на страницах вашего блога или сайта вы можете размещать ссылки вида http://site_name/pages/get/page1.html, где page1.html — определяется в файле linkslist.php и соответствует реальной ссылке, на которую будете перенаправлен пользователь. Весь процесс обработки ссылки автор метода уместил в такой схеме:

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

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

А каким способом скрытия реферальных ссылок пользуетесь вы и почему?

P.S. Постовой. Компания WebPromo предоставляет поисковое продвижение сайта и его раскрутку в Google и Яндекс.
Если вы не знаете как предотвратить лишение водительских прав советуем обратиться за бесплатной консультация автоюриста.
Линзмастер — это интернет магазин контактных линз с доставкой по Киеву и Украине.

Редирект в JavaScript

Метод позволяет заменить одну страницу другой таким образом, что это замещение не будет отражено в истории просмотра HTML-страниц (history) браузера

location.replace("https://www.google.com");
document.location.replace("https://www.google.com");

Метод полностью моделирует поведение браузера при нажатии на кнопку в панели инструментов. Если вызывать метод без аргумента или указать его равным , то браузер проверит время последней модификации документа и загрузит его либо из кеша (если документ не был модифицирован), либо с сервера.
Такое поведение соответствует нажатию на кнопку . Если в качестве аргумента указать , то браузер перезагрузит текущий документ с сервера. Такое поведение соответствует одновременному нажатию на и кнопки клавиатуры .

window.location.reload("https://www.google.com");

Следующие примеры тоже перенаправят на google:

location="https://www.google.com";
document.location.href="https://www.google.com";

С помощью функции возможно реализовать задержку переадресации перед выполнением редиректа (в примере — 5 секунд):

setTimeout( 'location="https://www.google.com";', 5000 );

Простой пример редиректа с таймером:

<script type="text/javascript">
var sec=10;
 function Sec()
 {
  document.getElementById("sec").innerHTML=sec;
   sec--;
   if(sec==1)
   {
   	  location.replace("https://www.google.com")
   }
   setTimeout('Sec()',1000);
 }

 Sec();
</script>
<p>Подождите пожалуйста <span style="color:red;font-weight: bold;" id="sec" name="sec">10</span> сек или перейдите по этой ссылке: <a href="https://www.google.com">https://www.google.com</a></p>

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

Существует много способов сделать переадресацию 301, но самый распространенный метод — отредактировать файл .htaccess вашего сайта.

Вы найдете его в корневой папке вашего сайта:

Не видите файл? Это означает одно из двух:

  1. У вас нет файла .htaccess. Создайте его с помощью Блокнота (Notepad в Windows) или TextEdit (Mac). Просто создайте новый документ и сохраните его с расширением .htaccess. Обязательно удалите стандартное расширение файла .txt.
  2. Ваш сайт работает не на веб-сервере Apache. Это скорее технический аспект, но существуют разные типы веб-серверов. Apache, Windows/IIS и Nginx являются наиболее распространенными. Только серверы Apache используют файлы .htaccess. Чтобы проверить, работает ли ваш сайт на Apache, используйте этот инструмент. Убедитесь, что в разделе «История хостинга» (Hosting History), в колонке «Веб-сервер» (Web server) указано «Apache».

Вот некоторые фрагменты кода для добавления распространенных типов переадресаций 301 с помощью файла .htaccess:

ВАЖНО. Эти инструкции предназначены исключительно для веб-серверов Apache. Здесь можно почитать, что делать, если ваш сайт работает на Nginx, а здесь — если ваш сайт работает на Windows/IIS

Перенаправление старой страницы на новую

 Redirect 301 /old-page.html /new-page.html 

Используете WordPress? Можно избавиться от необходимости самостоятельно редактировать файл .htaccess, если воспользоваться бесплатным плагином Redirection.

Добавить 301 редирект станет намного проще:

Перенаправление старого домена на новый

 RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com 
RewriteCond %{HTTP_HOST} ^www.oldsite.com 
RewriteRule ^(.*)$ https://newsite.com/$1  

Примечание. Существует несколько способов это сделать. Я ни в коем случае не эксперт в том, что касается серверов Apache и файлов .htaccess. Этот код у меня всегда срабатывал. Но вам следует обязательно протестировать его перед внедрением на своем сайте. 

ВАЖНО! Если уже есть в вашем файле .htaccess, не повторяйте его. Просто скопируйте остальную часть кода

Это можно сделать и в Cpanel, если так удобнее.

Перенаправление всего домена с версии без www на версию с www (и наоборот)

Вот вариант для перенаправления с версии без www на версию с www:

 RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com 
RewriteRule ^(.*)$ http://www.example.com/$1  

Вот вариант для перенаправления с версии с www на версию без www:

 RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com 
RewriteRule ^(.*)$ http://example.com/$1  

ВАЖНО! Расположение и порядок кода в вашем файле .htaccess также имеет значение. Вы можете столкнуться с нежелательными последствиями, если несколько команд размещены в «неправильном» порядке (например, в случае цепочек переадресаций и т. д.)

Если вы планируете использовать много 301 редиректов в своем файле .htaccess, то вам стоит внимательно все проверить.

Перенаправление всего домена с HTTP на HTTPS

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} 

ВАЖНО! Чтобы все правильно работало, на сайте должен быть установлен сертификат SSL. В противном случае вы получите предупреждающее сообщение «Соединение не защищено»

Перенаправление всего домена с версии без www на версию с www и с HTTP на HTTPS

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www. 
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} 
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} 

Способ 2. htaccess-редирект

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

Например, редирект любого url (из папки где .htaccess) на нужный адрес, вот содержимое .htaccess:

RewriteEngine On
RewriteRule (.*) //leonov-do.ru/

Возможны более сложные редиректы, но такой вариант по своей сути — такой же как и header-редирект (если указывается внешний URL). Возможны вариант переадресации файла — вместо (.*) указать к примеру имя go — будет редиректить адрес go и т.п. Можно указать в одном файле несколько строчек RewriteRule подряд с разными правилами — тогда не нужно писать каждый раз RewriteEngine On.

Оптимизируем работу сайта

Скорость загрузки сайта — один из факторов ранжирования в поисковых системах. Увеличить ее можно в том числе с помощью директив в .htaccess.

14. Сжимаем компоненты сайта при помощи mod_gzip или mod_deflate

Сжатие файлов, с одной стороны, увеличивает скорость загрузки сайта, но с другой — больше нагружает сервер. В .htaccess можно включить сжатие при помощи двух модулей — mod_zip и mod_deflate. Они практически идентичны по качеству сжатия.

Синтаксис модуля Gzip более гибкий и он умеет работать с масками:

В mod_deflate вы перечисляете типы файлов, которые нужно сжать:

15. Усиливаем кэширование

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

В примере срок жизни кэша ограничен одной неделей («1 week»), вы можете указать свой срок в месяцах (month), годах (year), часах (hours) и т.д.

Другой вариант кода:

Для кэширования доступны следующие типы файлов:

  • image/x-icon;
  • image/jpeg;
  • image/png;
  • image/gif;
  • application/x-shockwave-flash;
  • text/css;
  • text/javascript;
  • application/javascript;
  • application/x-javascript;
  • text/html;
  • application/xhtml+xml.

Другие настройки (CGI, Python, Node.js)

Инструкция по настройке сервисов находится в соответствующем разделе .

Директивы SSI (Server Side Includes) по умолчанию обрабатываются в файлах с расширением .shtml (например, index.shtml). Чтобы SSI обрабатывались и в других файлах, необходимо в файле .htaccess указать типы этих файлов:

Вместо «.ssi .html» укажите расширения файлов, в которых должны обрабатываться директивы SSI. Использовать в одном и том же файле PHP и SSI одновременно не рекомендуется.

Для выполнения скриптов CGI в какой-либо папке необходимо настроить веб-сервер соответствующим образом с помощью файла .htaccess. В папке, в которой должны выполняться скрипты CGI, создайте файл .htaccess вида:

Вместо «.cgi .pl» укажите список расширений, которые должны обрабатываться как скрипты. С помощью Файлового менеджера или FTP-клиента установите файлам скриптов права на выполнение (755).

Проектам на языке Python необходим файл .htaccess с таким содержанием:

Чтобы обрабатывать скрипты Node.js, укажите в .htaccess следующие директивы:

Замените example.com на основное имя вашего сайта, а login на логин вашего аккаунта.

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

Частные случаи

Двойное перенаправление

Двойное перенаправление — перенаправление А, установленное для перехода на перенаправление Б. Возникает, в случае если страница, на которую по задумке автора должно переводить перенаправление А, оказалась переименована. Иногда создаётся умышленно в целях вандализма (т. н. дятлинга).

Для поиска двойных перенаправлений необходимо использовать одноимённую служебную страницу. Их можно исправлять вручную или с помощью скрипта RedirectManagement.

Разорванное перенаправление

Разорванное перенаправление — перенаправление, ведущее на несуществующую (как правило, удалённую) страницу.

Отмечается на одноимённой служебной странице. Исправляется путём удаления вручную или с помощью скрипта RedirectManagement.

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

Взаимное перенаправление

Взаимное перенаправление — перенаправление А, ведущее на перенаправление Б, который возвращает читателя к перенаправлению А.

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

Рекурсивное перенаправление

Рекурси́вное перенаправление, или реку́рсия, — перенаправление, перенаправляющее само на себя.

Иногда создаётся участниками как шутка или для вандализма, практического применения не имеет.

Мягкое перенаправление

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

См. ]
Эта информация расположена в ]
Читайте ]

и т. п.

Как правило, мягкие перенаправления возникают из-за неопытности автора. Случаи, когда их создание оказывается следствием умышленной политики конкретного проекта, крайне редки. Причиной такого может являться разве что желание администрации увеличить число статей на вики (злокачественный ), поскольку стандартные перенаправления в счётчике не учитываются.

Иногда к мягким перенаправлениям относят также обособленные ссылки внутри содержательной статьи — например, в графе «Возможно, вы имели в виду» в преамбуле.

Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1/

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://%1/$1/

Что такое RivaTuner Statistics Server? Как установить, настроить и пользоваться программой?

Общие правила работы с .htaccess

  • Всегда делайте резервную копию файла перед внесением изменений, чтобы оперативно «откатить» их.
  • Вносите изменения пошагово, добавляйте по одному правилу и оценивайте, как оно сработало.
  • Если размещаете несколько файлов .htaccess в разных каталогах, прописывайте в дочерних только новые директивы, которые актуальны для конкретного каталога, остальные унаследуются от родительского каталога или файла в корневой папке.
  • Очищайте кэш браузера: Ctrl + F5, в Safari: Ctrl + R, в Mac OS: Cmd + R.
  • Если возникает ошибка 500, проверьте синтаксис правила (нет ли опечатки). Можно воспользоваться сервисами проверки файла .htaccess онлайн, например таким. Если ошибок не найдено, значит в главном конфигурационном файле такой тип директивы запрещен, придется обратиться за консультацией к программисту и хостинг-провайдеру.
  • В директивах .htaccess кириллические символы не допускаются. Если необходимо указать адрес кириллического домена (мойсайт.рф), воспользуйтесь любым whois-сервисом, чтобы узнать его написание по методу punycode. Например, адрес «сайт.рф» будет выглядеть как «xn--80aswg.xn--p1ai/$1».
  • Слишком большое количество директив в .htaccess может снизить работоспособность сайта. Старайтесь использовать файл только в том случае, если другим путем задачу решить нельзя.
  • Если нет времени подробно изучать особенности директив, воспользуйтесь генератором .htaccess.

Открытие в новом окне

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

В этом нам поможет атрибут target
со значением «_blank»
. Тут сложного ничего нет. Вам просто надо будет вставить это внутри открывающего тега после значения атрибута href
. Давайте возьмем тот отрывок из файла lukomorye.html, где мы делали ссылку на страницу pushkin.html, только теперь пропишем этот самый атрибут. Выглядеть это должно так:

Настройки веб-серверов в Панели управления

В настройках базового веб-сервера вы можете изменять все директивы PHP, значение графы Changeable для которых соответствует PHP_INI_PERDIR или PHP_INI_ALL. Эти настройки будут иметь силу на всех сайтах, которые работают на этом веб-сервере.

Управлять абсолютно всеми параметрами PHP вы можете на расширенном веб-сервере, редактируя php.ini через его настройки.

Чтобы установить индивидуальные параметры PHP для отдельного сайта, используйте файл .htaccess. Через него можно управлять всеми параметрами, доступными для изменения на базовом веб-сервере – примеры самых востребованных перечислены ниже.

По умолчанию отображение ошибок PHP на хостинге отключено. Для того чтобы видеть текст ошибок PHP на странице сайта, добавьте в файл .htaccess директиву:

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

Директория в пути расположения файла должна существовать, а если ее нет — обязательно создайте папку вручную. Файл журнала будет создан при появлении первой ошибки.

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

Вместо 512M укажите желаемый размер ограничения

Обратите внимание, что символ «M» (латинская M) указывается слитно со значением. Уточнить максимальное значение оперативной памяти, доступное по тарифу, можно в

Чтобы увеличить время выполнения скриптов (в секундах), добавьте следующую директиву в .htaccess:

Вместо 300 укажите желаемый размер ограничения

Обратите внимание, что выполнение скрипта более чем в 10 минут (600 секунд) завершится ошибкой с кодом 504

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

Вместо 200M укажите желаемый размер ограничения

Обратите внимание, что символ «M» (заглавная латинская M) указывается слитно со значением

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

Вместо 15000 укажите необходимый размер ограничения, который требует CMS сайта.

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

Вместо «windows-1251» подставьте подходящую кодировку, например, UTF-8. Проверить, в какой именно кодировке написан сайт, можно через инструменты используемого браузера. Если сайт не обрел корректный вид, обратитесь за помощью в службу технической поддержки.

Чтобы заставить интерпретатор PHP обрабатывать файлы с произвольным расширением, (например, .phtml), добавьте в файл .htaccess следующую строку:

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

По умолчанию время хранения сессий — 1440 секунд (24 минуты). Для изменения этого значения добавьте в .htaccess следующие директивы:

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

Альтернативные механизмы хранения и очистки сессий:

  1. Указывать вложенность директорий хранения сессий с помощью аргумента N в session.save_path и очищать старые сессии собственными скриптами ( в документации PHP).
  2. Реализовать собственный механизм хранения сессий (например, в MySQL) и установить его с помощью функции session_set_save_handler.

Настраиваем редиректы для SEO

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

При настройке 301 редиректов помните о двух правилах:

  1. Избегайте нескольких последовательных перенаправлений — они увеличивают нагрузку на сервер и снижают скорость работы сайта.
  2. Располагайте редиректы от частных к глобальным. Например, сначала переадресация с одной страницы на другую, затем общий редирект на страницы со слешем. Это правило работает не в 100% случаев, поэтому с размещением директив нужно экспериментировать.

1. Настраиваем постраничные 301 редиректы

Это потребуется в следующих случаях:

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

Просто удалить страницу — плохая идея, лучше не отдавать роботу ошибку 404, а перенаправить его на другой URL. В этом случае есть шанс не потерять позиции сайта в выдаче и целевой трафик. Настроить 301 редирект с одной страницы на другую можно при помощи директивы простого перенаправления:

  • — адрес страницы от корня, без протокола и домена. Например, .
  • — полный адрес страницы перенаправления, включая протокол и домен. Например, .

2. Избавляемся от дублей

Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:

  • редирект на страницы со слешем в конце URL или наоборот;
  • главное зеркало — основной адрес сайта в поиске.

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

Переадресация на слеш или наоборот

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

Код 301 редиректа на страницы без слеша:

3. Настраиваем главное зеркало

Для начала нужно определиться, какой адрес будет являться основным для поиска. SSL-сертификат давно уже мастхэв. Просто установите его и добавьте правило в .htaccess. Не забудьте также прописать его в robots.txt.

Редирект на HTTPS

Определять, с «www» или без будет главное зеркало, можно несколькими способами:

  • добавить сайт в Яндекс.Вебмастер в двух вариантах, в консоли отобразится информация, какой URL поисковик считает главным зеркалом;
  • проанализировать выдачу и посмотреть, каких страниц сайта больше в индексе;
  • для нового ресурса не имеет значения, с «www» или без будет адрес, выбор за вами.

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

Редирект с без www на www

4. Перенаправляем с одного домена на другой

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

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

или

Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.

Использование функции PHP header() для редиректа URL-адреса

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

<?php $new_url = «https://example.com/final.php»;
header(«Location: «.$new_url);
?>

Здесь мы используем PHP-функцию header()
, чтобы создать редирект. Нужно поместить этот код перед любым HTML
или текстом. Иначе вы получите сообщение об ошибке, связанной с тем, что заголовок уже отправлен. Также можно использовать буферизацию вывода, чтобы не допустить этой ошибки отправки заголовков. В следующем примере данный способ перенаправления PHP
показан в действии:

<?php ob_start();
$new_url = «https://example.com/final.php»;
header(«Location: «.$new_url);
ob_end_flush();
?>

Чтобы выполнить переадресацию с помощью функции header()
, функция ob_start()
должна быть первой в PHP-скрипте
. Благодаря этому не будут возникать ошибки заголовков.

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

<?php $new_url = «https://example.com/final.php»;
header(«Location: «.$new_url);
exit();
?>

Чтобы прояснить ситуацию: die()
или exit()
не имеют отношения к редиректам. Они используются для предотвращения выполнения остальной части кода на веб-странице.

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

Вывод кода JavaScript-редиректа с помощью функции PHP echo()

Это не является чистым PHP-решением
. Тем не менее, оно также эффективно. Вы можете использовать функцию PHP echo()
для вывода кода JavaScript
, который будет обрабатывать редирект.

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

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

<?php echo «»;
echo «»;
echo «»;
?>

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

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

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

Также можно использовать последнюю строку из предыдущего примера, чтобы автоматически обновлять страницу каждые «n

» секунд. Например, следующий код будет автоматически обновлять страницу каждые 8 секунд:

Заключение

В этой статье я рассмотрел три различных метода перенаправления с index php
, а также их преимущества и недостатки. Конкретный метод, который стоит использовать, зависит от задач проекта.

Перевод статьи «How can I do a redirect to different url before page load in PHP
» дружной командой проекта .

Хорошо
Плохо

Обзор возможностей программы

Ace Stream – это не просто посредник, который позволяет воспроизводить торренты. Программа работает как самостоятельный видеоплеер, достаточно удобный и функциональный. При этом при просмотре торрентов владелец может контролировать процесс загрузки, устанавливать желаемые параметры.

Как скачать Acestream на разных устройствах

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

Также подойдет телефон. Непосредственно на Smart TV виджет не устанавливается.

Установка на ПК

Для установки Ace Stream на компьютер потребуется скачать последнюю версию на официальном сайте. Затем выполняются следующие действия:

Запустить установку программы. При установке отметить пункт «Запускать вместе с Windows».
В антивирусной программе отключить файервол, чтобы он не блокировал доступ ТВ к AceStream.
Зайти в Ace Stream Media Centre.
Открыть «Сетевые подключения». Записать или запомнить IP адрес

Это важно, поскольку Smart TV и ПК должны находится в одной сети.

Важно! При установке программы на компьютер следует выставить диск для Кэша с большим объемом памяти, поскольку при просмотре отельных торрентов необходимо большое хранилище

Установка Acestream на Android

Процедура установки на Андроид мало чем отличается от описанной выше. Алгоритм действий следующий:

  1. Зайти на официальный веб-сайт и загрузить Ace Player.
  2. Выполнить установку приложения на устройство с Android.
  3. Открыть программу.
  4. В верхнем углу справа кликнуть на «Меню» и ввести идентификатор контента в специальном поле.
  5. Кликнуть на значок Acestream для открытия приложения.

Установка на ТВ

AceStream не предназначен для установки непосредственно на телевизор. Для правильного функционирования приложение должно быть запущено с телевизора, смартфона или планшета, а на Smart TV должен присутствовать виджет Forkplayer.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector