Безнадежный redirect php. Как сделать редирект

Типы редиректов

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

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

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

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

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

Редирект при помощи.htaccess файла

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

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

    Redirect / http://new-site.ru/

    В этом примере, перенаправление будет происходить на сайт new-site.ru

  • Редирект одной страницы на другую

    Redirect /page-1.html /page-2.html

    В этом примере, перенаправление будет происходить со страницы page-1.html на страницу page-2.html. Обе страницы должны располагаться на одном домене.
    Этот вариант подходит для замены старых страниц сайта на новые.

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

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

    В этом примере, посетители будут перенаправляться с http://www.example.ru на http://example.ru.

  • 310 редирект с одной страницы на другую

    Redirect 301 /blog/page-1.html http://example.com/page-2.htm

    В этом примере, посетители будут перенаправляться со страницы blog/page-1.html на example.com/page-2.htm .

  • Редирект ошибки 404

    ErrorDocument 404 /index.html

    Пропишите эту строку в.htaccess файле, и тогда все посетители, которым встретится ошибка 404, будут перенаправлены на index.html .

  • Редирект с HTTP на HTTPS

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

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

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

    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://www.domain.com/$1

  • PHP редирект

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

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

    В этом примере, перенаправление будет происходить на сайт http://example.com

  • Здесь перенаправление будет происходить на http://example.com/page.html

  • Редирект определенной страницы на страницу другого сайта

    Здесь если посетитель сайта зайдет на страницу blog/post-1.html то он будет перенаправлен на http://example.com/page.html

  • HTML редирект

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

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

    В этом примере, перенаправление будет происходить на сайт https://сайт с задержкой в 5 секунд. Если установить значение задержки вместо 5 в 0, то посетитель будет перенаправляться на другой сайт моментально.

  • Редирект на страницу другого сайта
  • Недавно показывал как можно сделать переадресацию на htaccess теперь предлагаю вариант php переадресации () - как альтернативу 301 редиректу сервера. Зачем это нужно? - а за тем что не везде и не всегда получается на htaccess сделать правильную переадресацию.

    И так, для начала нужно написать условие при каком будет срабатывать переадресация. У wordpress пишем код в файл header.php или в любой другой файл вашей темы выше функции get_header() в самое начало, до тегов хтмл. Код будет такого плана:

    Если вам нужна php переадресация на wordpress в локальном месте, например хочем перенаправить из одной категории на главную страницу, можно записать выше приведенный код в любой файл темы который срабатывает на вывод категории (например category.php) выше кода вызова шапки get_header();

    Как работает php переадресация в строке ответа

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

    Все тот же редирект 301 только реализован на ПХП.

    Зачем использовать 301 редирект php Бывает ситуация, когда нужно зафиксить всю категорию, таксономию, метку ВП или заблокировать Custum Post Type не удаляя их. Например, мы перенесли контент, но сылки уже проиндексированные в этом случае нам поможет 301 редирект php, который мы сможем вставить в любое место. Конечно, такой редирект уступает по производительности редиректу с настроек сервера, но писать большушую маску под таксономию или CPT очень большой геморой. Если не срабатывает 301 редирект php ?

    Редирект на ПХП может не срабатывать по причине не срабатывания условия, так что для начала нужно:

  • Проверить условие на пхп, например забросить туда echo "Test";
  • Если условие срабатывает, то нужно смотреть где находится наш код переадресации, если ниже тегов хтмл то это и есть наша проблема. Надо поднять выше всего
  • Благодаря возможности перенаправлять сайт из PHP мы можем реализовать механизм редиректов там где htaccess не справляется, точнее мы не можем справится 🙂

    Если у вас остались вопросы пишите их в комментариях или мне на .

    Всем привет! В этой статье хочу наглядно показать как можно сделать редирект ваших пользователей используя для этого PHP, Apache или Nginx .

    Для начала стоит пару слов уделить определению того что такое редирект.
    Редирект – это автоматическое (принудительное) перенаправление посетителей сайта с одной страницы на другую. Для того чтобы при перенаправлении пользователя он понимал куда и почему его перенаправили то нужно указывать состояние для веб страницы. О состоянии страницы говорит код статуса HTTP .

    Редирект коды

    Нас интересуют следующие статус-коды редиректов:

    • 300 — Multiple Choices (несколько вариантов на выбор давая возможность сделать выбор пользователю).
    • 301 — Moved Permanently (запрошенный документ перемещен на новый URI).
    • 302 — Moved Temporarily (временный редирект по другому URI).
    • 303 — See Other (затребованный ресурс можно найти по другому адресу).
    • 304 — Not Modified (содержимое не изменялось — это могут быть рисунки, таблицы стилей и т.п.).
    • 305 — Use Proxy (доступ должен осуществляться через прокси-сервер).
    • 306 — Unused (не используется, зарезервирован).
    HTML редирект

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

    Атрибут «content » – это задержка перед тем, как браузер перенаправляет на новую страницу, наше значение 0 секунд. Обратите внимание, что мы не должны устанавливать HTTP-код, но важно дважды проверить странное открытие и закрытие кавычек.

    PHP редирект