Как сделать 301 редирект (переадресацию) через htaccess
Содержание:
- 301 редирект: что это такое
- Перенаправление при загрузке страницы
- Что такое редиректы?
- Как устроен редирект?
- Редирект в .htaccess (RewriteEngine)
- Примеры 301 редиректов в .htaccess
- HTML Redirect: Useful Tips
- Способ 2. htaccess-редирект
- Проброс портов // по шагам
- Что такое 301 редирект?
- Канонизация домена сайта или как склеить домен?
- Полезные советы
- Что такое редирект
- 3.Другие примеры с htaccess
- В чём отличие 301 от 302 редиректа
301 редирект: что это такое
Можно столкнутся с несколькими видами редиректов, которые применяются в программировании и оптимизации. Одним из них будет 301 редирект, что это такое для нас не секрет. По другому его еще называют 301 Moved Permanently.
Один из наиболее популярных видов, к помощи которого прибегают для переноса локации навсегда, после чего следует заняться качественной настройкой Яндекс Директ, чтоб сделать это с минимальными потерями. Обычно этот редирект используется на постоянной основе при:
- Перемещении доменов;
- Перемещении документов;
- Изменении протоколов сайтов;
- Изменении структуры сайтов.
По окончанию данного процесса, Ваш прежний URL исчезнет из выдачи, а новый будет индексироваться поисковиками, сохранив показатели прежнего.А если сервис будет выдавать браузеру ошибку 404 – это будет означать, что редирект не настроен.
Перенаправление при загрузке страницы
Допустим, что перед выполнением JS redirect вы хотите убедиться, что страница закончила загрузку и выполнились определённые скрипты. В зависимости от того, когда нужно осуществить перенаправление, можно использовать следующие три события:
- Событие window.onload: возникает, когда объектная модель документа загружена, и весь контент загружен (то есть всё загружено).
- Событие document.onload: возникает, когда готова объектная модель документа (строится из кода разметки). То есть перед тем, как загружаются изображения или другой внешний контент.
-
Событие document.onreadystatechange: возникает, когда:
- документ всё ещё загружается;
- документ загружен, но внешние ресурсы (изображения, стили, фреймы и т.п.) ещё нет;
- документ и все внешние ресурсы загружены (то же самое, что и событие window.onload).
Примеры:
// Пример №1 window.addEventListener('load', function(event) { // все ресурсы загружены window.location = 'http://www.example.com/'; }); // Пример №2 document.onreadystatechange = function () { switch(document.readyState) { case 'loading': // документ всё ещё загружается break; case 'interactive': // документ загружен; теперь возможно обращение к элементам DOM break; case 'complete': // страница полностью загружена (то есть все ресурсы загружены) break; } }
Что такое редиректы?
Редиректы — это способ перенаправлять пользователей сайтов на URL, отличный от того, что они запросили. Дубли страниц ухудшают ранжирование сайта, а редиректы помогают с ними бороться.Ещё их используют когда нужно создать новую страницу взамен уже существующей и при этом сохранить позиции и трафик. Существует 9 видов редиректов, но в SEO-практике активно применяются лишь три из них:
301 Moved Permanently (постоянный редирект) — указывает, что документ перенесён на новый URL навсегда. Когда SEO-специалисты или разработчики говорят о редиректе, они почти всегда имеют в виду 301 редирект. Старый адрес исчезает из выдачи, его место с сохранением позиций занимает новый.
302 Found, 302 Moved Temporarily (найдено, перемещено временно) — документ перенесён временно, например, переводит пользователя на страницу акции (распродажи), не меняя содержимое старой страницы. При этом в выдаче остается старый адрес страницы, ведь на новый она перемещена временно.
307 Temporary Redirect (временный редирект) — запрашиваемый документ на короткое время доступен по другому URL с сохранением метода передачи запроса (GET, POST) В целом выполняет ту же задачу что и 302 редирект.
Общие советы по настройке редиректов
1. Делайте редиректы только на релевантные страницы, со статусом 200 (OK).Чем более релевантна страница акцептора (та что принимает редирект) странице донору, тем быстрее они склеятся и тем больше веса она передаст.
2. Не используйте редирект там, где лучше поставить rel=canonical
Если контент страниц дублируется, но вам важно оставить страницы доступными для пользователей, используйте rel=canonical вместо редиректа. Например, если есть несколько версий контента (для печати, для мобильных,)
3. Не используйте редиректы для файла robots.txt
Этот совет в большей мере касается ПС Яндекс — для нее важно, чтобы при смене домена или переезде на защищенный протокол старый robots.txt был доступен роботам — так быстрее происходит склеивание доменов
4. Избегайте двух, трёх и более редиректов подряд. Каждый новый редирект — это потеря времени загрузки, лишняя нагрузка на сервер и возможная потеря передаваемого веса страницы.
5. В файле .htaccess вначале используйте переадресации страниц с более высоким уровнем вложенности, например:
- сначала редирект с site.com/category-1/subcategory-1/ на site.com/category-1/subcategory-2/;
- затем с site.com/category-0/ на site.com/category-0;
- и последними — глобальные правила типа редиректа всех страниц без «/» на страницы с «/».
На больших ресурсах с множеством редиректов несоблюдение этого правила ведёт к возникновению страниц с 404 ошибкой.
6. Браузеры кешируют редиректы — чтобы проверить их работу, сбрасывайте кеш или используйте специализированные сервисы.
Важно!Хотя ссылочный вес и передается в полной мере, при массовом применении редиректов, например, при переезде на https, возможно проседание позиций и трафика страниц на 10-15%, с последующим восстановлением в течение 2-4 недель. Некоторые seo-специалисты, чтобы исключить возможность проседания трафика, советуют сначала настраивать 302 редирект, а после появления в выдаче большинства новых страниц — менять его на 301
Сразу предупреждаем, что такое использование 302 редиректа идёт вразрез с рекомендациями Google, но никто не запрещает вам экспериментировать 🙂
Массово проверить статус страниц сайта можно, используя программы для аудита сайта Netpeak Spider, SEO Screaming Frog и сервис Serpstat.
Как устроен редирект?
Общий алгоритм редиректа выглядит следующим образом:
1. Пользователь в браузере открывает страницу. Например, site/abc.html
2. Сайт возвращает браузеру специальный заголовок, в котором указывает какую страницу необходимо открыть вместо запрошенной. Например, site/abc2.html
3. Браузер открывает страницу, адрес которой был указан в заголовке.
В реальности же, зависит от того, как реализован редирект:
1. С помощью htaccess. Многие существующие сайты используют Apache (серверная программа для сайтов). И файл htaccess позволяет настраивать в нем сложные правила переадресации страниц. Алгоритм аналогичен общему.
2. С помощью PHP (и иные серверные языки). Тот же самый специальный заголовок может сформировать серверный язык, такой как php. Алгоритм аналогичен общему.
3. С помощью мета тега HTTP-EQUIV=REFRESH. С некоторого времени, браузеры стали поддерживать специальный мета тег в html, который позволяет перенаправлять пользователей с одной страницы на другую. Пример:
<meta http-equiv="refresh" content="5; URL=site.ru">
где «5;» — это время в секундах, через которое необходимо осуществить редирект, а URL=site.ru — это адрес страницы.
Алгоритм следующий. Браузер загружает полноценную страницу по старому адресу (и отображает ее пользователю), видит данный заголовок и осуществляет перенаправление через указанное время.
Данный подход появился из-за того, что порой требуется отобразить некую информацию до переадресации. Например, поясняющий текст о том, что страницы разделов были перенесены.
4. C помощью JavaScript. Это не совсем переадресация в полноценном смысле. Дело в том, что перенаправление на другой url происходит после того, как страница будет полностью загружена (в этом смысле схоже с мета тегом), и после выполнения специальной команды, вида:
window.location.href = "";
Отличие в том, что данная команда может быть вызвана в произвольном месте и неожиданно для браузера. Именно поэтому этот метод сложно считать полноценным редиректом.
Стоит знать, что корректными для поисковых систем считаются htaccess, php и мета тег. JavaScript далеко не всегда может корректно восприниматься, поэтому его стоит использовать только для внутренних целей (например, в ЛК пользователей).
Редирект в .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
Примеры 301 редиректов в .htaccess
Мы уже рассматривали множество примеров с редиректом по .htaccess в статьях:
- 301 редирект для удаления/добавления слэша в конце URL;
- 301 редирект с index (.html и .php) на корень сайта «/»;
- Редирект 301 с http на https;
- Редирект 301 с www на без www;
- Смена адреса сайта — редирект со старого домена на новый;
Здесь мы дополним варианты редиректов, которых ещё не было.
Редирект с site.ru/cat/oldpage на site.ru/newpage.html
2.4. Удаление лишних слэшей в адресе URL
Например, страница /catalog///stranica.html доступна и открывается. Чтобы избежать такой ситуации и не плодить бесконечное число дублей следует записать следующий редирект
2.5. Реврайт без редиректа
Можно загрузить другую страницу без смены адреса страницы URL. Например, загрузим страницу /news.html, а в адресной строке будет отображаться адрес /news/happy
2.6. Простановка замыкающего слеша в конце адреса главной страница
Например, многие сервера работают так, что последний слэш не пишется в URL. Например, http://site.ru. Ниже приведенный код решают это проблему: сайт будет открывать по http://site.ru/
Например, для редиректа со страницы site.com/directoriya/stranica.html на site.com/stranica.html нужно прописать следующее:
2.9. Редирект на мобильную версию сайта m.site.ru
В данном примере сначала проверяется факт того, что пользователь открыл сайт с мобильного устройства {HTTP_USER_AGENT}, далее происходит замена адреса сайта на m.URL
HTML Redirect: Useful Tips
- If you don’t define a new URL address for the redirect, HTML page will simply reload itself after the time specified. It can be useful when you need to refresh dynamic content.
- We’d advise you to avoid delays shorter than 3 seconds, as that makes it virtually impossible for the user to click the Back button on their browser.
- Be careful not to overuse HTML meta redirects: if your website has a ton of them, the search engines may think it contains spam and remove it from their index.
- You can also create redirects with PHP, JavaScript, Ruby on Rails, and Python Flask, as well as in the Apache, Nginx, and Lighttpd web servers.
Способ 2. htaccess-редирект
Этот редирект делается простым помещением файла .htaccess в папку где нужно сделать редирект.
Например, редирект любого url (из папки где .htaccess) на нужный адрес, вот содержимое .htaccess:
RewriteEngine On RewriteRule (.*) //leonov-do.ru/ |
Возможны более сложные редиректы, но такой вариант по своей сути — такой же как и header-редирект (если указывается внешний URL). Возможны вариант переадресации файла — вместо (.*) указать к примеру имя go — будет редиректить адрес go и т.п. Можно указать в одном файле несколько строчек RewriteRule подряд с разными правилами — тогда не нужно писать каждый раз RewriteEngine On.
Проброс портов // по шагам
1) Вход в настройки роутера
Логично, что первое необходимое действие – это вход в настройки роутера. Чаще всего, достаточно в любом браузере набрать адрес http://192.168.0.1/ (либо http://192.168.1.1/) и нажать Enter.
В качестве логина и пароля использовать admin (либо заполнить поле логина, а пароль вообще не вводить).
Если вдруг IP-адрес не подошел, а сеть у вас есть и работает – то попробуйте открыть командную строку и ввести ipconfig. Среди кучи появившихся параметров, должны увидеть строчку “Основной шлюз” – это и есть IP-адрес настроек роутера.
Как узнать IP-адрес для входа в настройки в роутер
2) Присваиваем компьютеру постоянный локальный IP-адрес
Каждый раз, когда вы включаете компьютер или ноутбук, он, соединившись с роутером получает свой IP-адрес в локальной сети (т.е. той домашней локальной сети, которую организует роутер). Например, у вашего ноутбука может быть адрес – 192.168.0.101, а у компьютера – 192.168.0.102.
Этот адрес локальный (внутренний) и он может меняться (если это специально не настроить)! Т.е. сегодня у вашего компьютера был IP 192.168.0.102, а завтра 192.168.0.101. А для проброса портов – нужно, чтобы он был постоянным, и не изменялся с течением времени.
Чтобы это сделать в роутерах, как правило, необходимо знать MAC-адрес сетевого адаптера, через которое вы подключаетесь к нему. Например, в ноутбуках – это, как правило – беспроводной адаптер, в компьютерах – Ethernet.
Узнать MAC-адрес можно также в командной строке – команда ipconfig/all покажет физический адрес устройства (это и есть MAC-адрес). См. скрин ниже.
Физический адрес адаптера – это и есть MAC-адрес
Собственно, дальше в настройках локальной сети в роутере (где задается привязка конкретного статического IP к MAC) укажите ваш локальный IP-адрес и MAC-адрес сетевого адаптера. Таким образом, даже после выключения вашего ПК (перезагрузки) и т.д. – ваш IP будет постоянным (т.е. в нашем примере 192.168.0.102, т.е. роутер, по сути, его за вами закрепит и не даст никакому другому устройству!).
Статический IP-адрес (кликабельно)
ASUS – привязка IP к MAC-адресу
3) Открываем порт для нужной программы
Теперь осталось открыть порт для конкретной программы. Но прежде, один небольшой вопрос…
Например, в uTorrent порт можно посмотреть в настройках соединения (см. скрин ниже).
В моем случае 16360 (но его можно и поменять). Браузеры используют 80 порт, Skype – подобно uTorrent, можно уточнить в настройках (и поменять в случае необходимости).
Как правило, порты (которые нужно открыть) указаны в файле помощи, в настройках приложения, или просто в ошибке, которая сообщит вам о проблемах с NAT!
Что касается каких-то игр – то этот момент необходимо уточнять в технических характеристиках игры, либо у разработчиков (также можно на тематических форумах).
Продолжим…
В настройках роутера в разделе задания параметров интернета (часто раздел WAN) можно задать перенаправление портов (Port Forwarding). В роутере Tenda — это раздел “Дополнительные параметры”.
Достаточно указать внутренний локальный IP-адрес (который мы в предыдущем шаге этой статьи привязывали к MAC-адресу), и порт, который хотите открыть
Обратите внимание, что также может потребоваться указать протокол TCP или UDP (если не знаете какой открыть – открывайте оба)
Парочка скринов представлены ниже (для роутеров ASUS и Tenda).
Порт для uTorrent был открыт!
ASUS – порты открыты (в качестве примера)
Собственно, порты проброшены. Можете сохранять настройки и пользоваться программами — всё должно работать…
4) Пару слов о DMZ-хосте
Все, что писано выше, мы сделали лишь для одного-двух портов. А представьте, если вам необходимо открыть все порты?! Например, это часто бывает нужно для создания игрового сервера, для организации видеонаблюдения и пр. ситуациях.
Для этого во всех современных роутерах имеется специальная функция DMZ-хост. Включив ее и указав нужный локальный IP-адрес в вашей сети, вы открываете все порты у этого компьютера. Пример настроек представлен на скрине ниже.
Включаем DMZ-хост / Включите также UPnP
Отмечу, что делать так следует только по необходимости. Все-таки, таким быстрым и не хитрым образом, вы открываете полностью свой ПК для доступа из интернета (что не очень хорошо в плане безопасности).
А у меня по теме вопроса пока всё.
Дополнения приветствуются…
Удачной настройки!
RSS
(как читать Rss)
Что такое 301 редирект?
301 редирект или 301 Permanent Redirect – это постоянная переадресация одного URL-адреса на другой. Само слово «редирект» дословно переводится с английского как «перенаправление».
Фактически это ответ сервера на запрос к нему, и ответ этот имеет код 301, говорящий о том, что адрес запроса был изменен навсегда. Результатом всех этих странных для новичка манипуляций становится то, что мы должны увидеть в браузере какой-то другой конечный адрес.
.htaccess
Если приложить максимум усилий — 301 редиректом возможно решить широкий круг проблем с оптимизацией, и глобально улучшить конверсию сайта. Соответственно, как сделать редирект на другой сайт нужно знать любому SEO специалисту и веб-мастеру.
Главное в этом деле — не забыться и не натворить лишнего, а также помнить о том, что перед каждым добавлением новых редиректов необходимо делать бекап файла .htaccess.
Зачем нужен 301 редирект и в каких случаях его используют?
301 редирект — весьма универсальный инструмент для любого оптимизатора. Он позволяет совершить перенос ссылочного наполнения одной страницы на другую. Чаще всего делают редирект на другой сайт при переезде на другой домен, соединении дублей интернет страниц или перенаправлении с «www» на «без www» и наоборот.
wwwбез wwwпо наследству
301 редирект способен передать:
- индекс цитирования;
- все ссылочное наполнение.
301 редирект не способен передать:
- возраст сайта;
- какие либо фильтры или санкции;
- присутствие в каталогах.
Ко всему прочему, возможен вариант, когда редирект выступает способом добавления в конце ссылки косой черты — слеша. То есть «http://site.com/news» при помощи редиректа изменяют на «http://site.com/news/».
Обобщая, 301 редирект необходим, как для пользователей, так и для поисковых роботов. Он позволяет и тем, и другим распознать, что появился новый сайт, домен или страница, а так же мгновенно переадресовывает их туда.
Кроме всего прочего 301 редирект достаточно часто используется в SEO, так как позволяет показать поисковым роботом, что страница переадресуется навсегда. Ну и, конечно, 301 редирект позволяет без труда перенести позиции старых страниц на новые.
Как настроить 301 редирект?
Решений этой задачи на самом деле множество, все зависит от того какими техническими характеристиками обладает хостинг вашего сайта. Сейчас мы приведем несколько наиболее простых вариантов, как сделать 301 редирект.
Запомните, что все операции производится в файле .htaccess или httpd.conf (для сервера Apache).
Вариант 301 редиректа для переадресации на другой домен:
Redirect 301 / http://www.site.com/index.htm
В данном примере все страницы сайта будут перенаправлены на другой.
301 редирект для одной страницы выглядит так:
Redirect 301 /site1/page1.htm http://www.site2.com/page2.htm
В качестве последнего примера приведем следующее:
Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/
Видно, что при попадании пользователя или поискового робота в директорию test он автоматически перенаправляется на «www.test.com», все остальные перейдут на «enter.test.com».
Можно, конечно, использовать готовый скрипт редиректа, которых полно в сети. Однако для успешности данной операции необходимо чтобы на хостинге были включены модули «mod_alias».
Как проверить работает ли 301 редирект?
Самые распространенные ошибки, при которых 301 редирект отказывается работать правильно – это наличие прочих редиректов, мешающих работе.
После того как вы настроили 301 редирект необходимо проверить его на работоспособность. Для этого нужно зайти не только на главную, но и прочие страницы сайта.
Переходя к практике, давайте рассмотрим как проверить 301 редирект.
Допустим, посетитель вводит в адресной строке браузера ссылку «http://primer.com/index.php» и нажимает «ввод». Браузер совершает HTTP-запрос и посылает его серверу, который возвращает HTTP-ответ.
При установленном редиректе, в поле «Location» будет прописан другой адрес страницы, например: «http://primer.com/surprize.php», куда и произойдет переадресация.
Существует много сервисов и плагинов позволяющих проверить работоспособность редиректа.
HttpFox
Плагин HttpFox для браузера Mozilla Firefox построчно фиксирует загрузку страницы, что позволяет отслеживать связки редиректов, а так же порядок и быстроту загрузки интернет страницы.
Надеемся, что данная статья помогла вам сделать редирект на новые страницы сайта без каких-либо проблем.
Удачи Вам!
Канонизация домена сайта или как склеить домен?
Чтобы настроить редирект с www на без www нам необходимо знать в каких случаях будет происходит склейка домена и зачем она нужна.
Во-первых, склейка домена это обьединение нескольких сайтов в один, в результате чего основному домену передается ссылочный вес и основные показатели авторитетности домена, который ссылается на сайт.
Во-вторых, это используется при 1) возникновении необходимости убрать дублированный контент; 2) переезде на новый домен.
В-третьих, 301 редирект может быть настроент через .htaccess. Простой редирект задается в файле .htaccess, который является конфигурационным файлом веб сервера и выглядит следующим образом:
Для склейки домена с www с адресом без www:
Для склейки без www на www:
Для правильного выбора основного варианта склейки рекомендуется учитывать:
- какой из вариантов находится в ТОПе поисковой выдачи;
- по какому из вариантов больше страниц в индексе.
Канонизация слеша в конце URL
При разработке веб-ресурса очень важно выбрать корректный формат с использованием косой черты в конце урла, поскольку для поисковых система два варианта указанные ниже это два разных URL-адреса:
- http://www.site.com/cat1/
- http://www.site.com/cat1
Поэтому, после выбора одного варианта на веб-ресурсе вам стоит настроить такие переадресации:
Чтобы удалить слеш в конце:
Для добавления слеша в хвосте адреса:
Переадресация с одной страницы на другую:
Переадресация для зеркал домашней страницы
Нижеприведенный фрагмент кода дает гарантию, что все урлы главной страницы, включающие несколько вариантов прямых ссылок на страницу, к примеру, default.htm или index.html, будут перенаправлены на каноническую домашнюю страницу, http://www.site.com/:
Если URL-адрес содержит структуру каталога, значит в случае изменения каталога, вам также придется соответствующим образом изменить URL-адрес. В подобном варианте вам следует прописать такой редирект:
Но если урл старого каталога начинается непосредственно после имени домена: www.site.com/old-catalog/, то стоит применить следующий код
Переадресация при изменении файловых расширений
Если вдруг вы перешли на альтернативную платформу или систему управления контентом, и поменяли расширения адресов вашего сайта, тогда используйте такой формат перенаправления.
Примеры использования для предотвращения появления на сайте дубликатов страниц
Построение редиректов из различных доменов и поддоменов
Если вы приобрели несколько адресов в различных доменных зонах или создали новый сайт с привязкой к поддомену, и не закрыли субдомен от индексирования, то стоит сделать перенаправление на главный домен:
В идеале все дополнительные доменные адреса, включая www.site.ru, www.site.net, test.site.com, будут переадресованы на основной источник www.site.com.
Как удалить несколько слешей либо тире в адресе сайта
Бывают случаи, когда по неизвестным причинам адрес может включать несколько слешей, например, www.site.com/catalog////page-3.html. Здесь необходимо проставить 301-редирект на страницу с одним слешем www.site.com/catalog/page-1.html:
Также доступна опция объединения нескольких тире в одно из URL-адреса: от www.site.com/catalog/page-1.html:
Как сделать переадресацию с любого URL на адрес с нижним регистром?
Так как поисковики учитывают разницу с разным регистром букв, при разработке веб-ресурса настоятельно рекомендуется добавлять все URL-адреса именно в нижнем регистре
Но если вы изначально не акцентировали внимание на этом моменте, то лучше использовать такой алгоритм перенаправления на уровне php -скрипта:
Полезные советы
- Современные браузеры по умолчанию используют кеширование для редиректов. Чтобы проверить работу редиректа необходимо очистить кеш в браузере или использовать любой сторонний сервис по проверке кода ответа сервера.
- Нежелательно создавать цепочки редиректов. При медленной работе сервера это вызовет недовольство пользователя. Поисковые роботы также не любят последовательные редиректы — вес исходной страницы может не передаться.
- При составлении файла .htaccess простые директивы должны идти раньше сложных, которые распространяются на весь сайт. Такая компоновка будет более удобной при работе с файлом и поможет избежать путаницы.
Что такое редирект
Для чего нужен редирект? Основная функция для перенаправление посетителей с одного сайта на другой (с одной страницы на другую).
Причиной этому могут служить разные обстоятельства, например смена раскрученного домена, арбитраж трафика, работа с партнерскими программами.
Суть работы редиректа следующая — пользователь набирает один адрес сайта, нажимает ENTER, и попадает на совершенно другой сайт.
Давайте рассмотрим следующие виды редиректа:
- header-редирект средствами PHP — 301, 302-й редирект (разница между ними).
- Редирект средствами .htaccess (и модуля mod_rewrite, который используется при этом).
- Простейший JavaScript — редирект с помощью doсument.location
- META-REFRESH — редирект с помощью meta-тэгов
- JavaScript-редирект с задержкой через setTimeout (например для учёта Метрикой).
- Iframe/Frameset — «псевдо» редирект через фреймы (например для прохождения модерации в Яндекс.Директе).
Редирект — перенаправление
3.Другие примеры с htaccess
3.1. Запретить IP-адрес и браузер
Запретим открывать сайт для пользователя с браузера IE с IP-адресом 172.111.222.55
RewriteCond %{HTTP_USER_AGENT} MSIE RewriteCond %{REMOTE_ADDR} ^172\.111\.222\.55$ RewriteRule ^.*$ -
Запретим для всех файл disable_file.html:
<Files disable_file.html> deny from all </Files>
3.3. Разрешить доступ с одного ip
Доступ будет разрешен только с одного ip-адреса 172.111.222.55
order deny,allow deny from all allow from 172.111.222.55
3.4. Запретить доступ с разных ip
Запретить доступ к сайту с нескольких ip-адреса 172.112.222.55, 172.113.222.55, 172.114.*.*
<Limit GET POST PUT> order deny,allow deny from all deny from 172.112.222.55 deny from 172.113.222.55 deny 172.114.*.* </LIMIT>
3.5. Редирект в URL с больших символов на маленькие
Все большие буквы в адресе URL будут переведены на маленькие.
RewriteRule - RewriteRule ! - RewriteRule ^(*)A(.*)$ $1a$2 RewriteRule ^(*)B(.*)$ $1b$2 RewriteRule ^(*)C(.*)$ $1c$2 RewriteRule ^(*)D(.*)$ $1d$2 RewriteRule ^(*)E(.*)$ $1e$2 RewriteRule ^(*)F(.*)$ $1f$2 RewriteRule ^(*)G(.*)$ $1g$2 RewriteRule ^(*)H(.*)$ $1h$2 RewriteRule ^(*)I(.*)$ $1i$2 RewriteRule ^(*)J(.*)$ $1j$2 RewriteRule ^(*)K(.*)$ $1k$2 RewriteRule ^(*)L(.*)$ $1l$2 RewriteRule ^(*)M(.*)$ $1m$2 RewriteRule ^(*)N(.*)$ $1n$2 RewriteRule ^(*)O(.*)$ $1o$2 RewriteRule ^(*)P(.*)$ $1p$2 RewriteRule ^(*)Q(.*)$ $1q$2 RewriteRule ^(*)R(.*)$ $1r$2 RewriteRule ^(*)S(.*)$ $1s$2 RewriteRule ^(*)T(.*)$ $1t$2 RewriteRule ^(*)U(.*)$ $1u$2 RewriteRule ^(*)V(.*)$ $1v$2 RewriteRule ^(*)W(.*)$ $1w$2 RewriteRule ^(*)X(.*)$ $1x$2 RewriteRule ^(*)Y(.*)$ $1y$2 RewriteRule ^(*)Z(.*)$ $1z$2 RewriteRule - RewriteCond %{ENV:HASCAPS} TRUE RewriteRule ^/?(.*) /$1
В чём отличие 301 от 302 редиректа
Существует так же еще один вид редиректа — 302 Found. А в чем отличие 301 от 302 редиректа, ответить просто. Этот вид уже будет не постоянным, а временным решением. Он будет заниматься перенаправлением пользователя на короткий период. При этом все параметры по прежнему будут оставаться на исходной странице и никуда не перенесутся
Пользоваться этим редиректом, как и любым другим, нужно очень осторожно.
Если решите переехать на новый домен или задумаете сделать обновления на сайте, не пользуйтесь этим способом. Поскольку можно легко попасть в ситуацию, когда старые и новые страницы окажутся в поисковом индексе. А это может привести Ваш ресурс к полному краху.