Поиск и удаление редиректов c сайта

Содержание:

Введение

Что такое перенаправление (Redirects)?

Перенаправление означает, что веб-сайт может перенаправить запрос ресурсов на другой URL/конечную точку. Предположим, что вы отправляете запрос на apple.com, а apple.com может перенаправить вас на другой сайт (new-apple.com), так что вы окажетесь на new-apple.com, даже если исходный запрос был сделан для apple .com. Это называется «перенаправление». Существуют различные типы перенаправлений в HTTP.

Стандартные коды статусов перенаправлений — 3xx

  • 300 Multiple Choices множество выбора
  • 301 Moved Permanently перемещено навсегда
  • 302 Found найдено
  • 303 See Other смотреть другое
  • 304 Not Modified не изменялось
  • 305 Use Proxy использовать прокси
  • 307 Temporary Redirect временное перенаправление
  • 308 Permanent Redirect постоянное перенаправление

Перенаправление может происходить на стороне сервера (Server-Side) или на стороне клиента (Client-Side).

Server-Side: Запрос на перенаправление отправляется на сервер, затем сервер уведомляет браузер о перенаправлении на URL-адрес, указанный в ответе.

Client-Side: Браузер получает уведомление о перенаправлении на указанный URL-адрес напрямую, без вмешательства сервера.

Что такое Open Redirects?

Open redirect (Открытое перенаправление) это то, что написано в названии: Открытое (Open) перенаправление (Redirects) на любой веб-сайт.

Почему это проблема?

Ну, это плохо с самого начала, подумайте об этом на мгновение, что если apple.com, ДОВЕРЕННЫЙ веб-сайт, позволяет вам перенаправить на любой другой веб-сайт. Тогда злонамеренный пользователь может просто перенаправить apple.com на attacker.com, и люди все время будут думать что они находятся на apple.com, полагая, что ему доверяют, но на самом деле это не так. Поэтому разрешать перенаправления на любой веб-сайт без проверки или без надлежащего уведомления пользователя — это плохо.

14-08-20

Назначение редиректов

По своему назначению редиректы бывают:

  1. Мобильные редиректы – это переадресация посетителей, которые заходят на сайт со своих мобильных устройств.
  2. Поисковые редиректы – это переадресация посетителей, приходящих с поисковой системы (воровство поискового трафика).
  3. Редиректы на файлы вредоносной природы или на рекламные файлы. Их возможно наблюдать как на мобильных устройствах, так и на декстопах. Пользователю предлагается скачать некий вредоносный файл под видом обновления системных компонентов или какой-то известной программы. Также может наблюдаться загрузка вредоносного кода в браузере, который содержит некую уязвимость.

Как следует лечить редиректы

  1. Нужно убедиться, что вы сможете 100% воспроизвести редирект. Потому что только в этом случае можно считать, что вы его удалили.
  2. Удаляем тот инжект javascript или фрагмент .htaccess файла, который порождает редирект. Пытаемся воспроизвести его. Если редирект не воспроизводится, то можем с уверенностью утверждать, что редирект удалён.
  3. Необходимо выполнить полное сканирование сайта с целью обнаружения вредоносных скриптов. Скорее всего, также обнаружатся хакерские шеллы, бэкдоры. Их необходимо удалить. После этого установить защиту от взлома и осуществить мониторинг сайта.

Все зависит от Ваших знаний и умений. Есть сканера для поиска редиректа, есть скрипты для поиска и перезаписи файлов на сервере, есть ssh и команды для работы на сервере. Самое простое это FTP и файлы, тут требуется меньше знаний, но больше времени. Главное понимание того, что если сайт на хосте не один, то искать и чистить надо все, редирект может быть на соседнем сайте и заражать не тот сайт, а только какой-то определенный из соседних, и все думают, что зараза только на том что редиректит или ПС его блокирует 99 процентов — это Ваша первая ошибка и заблуждение.

Как сделать с помощью Nginx редирект с https на http

Файл Nginx должен содержать 2 секции server (для https и сайта http). В секции http нужно сделать редирект всех запросов на https. Для этого используется директива return. После этого выполняется обработка 2-й секции. К примеру:

server {

server_name losst.ru ;

charset off;

index index.php;

ssi on;

return 301 ;

set $root_path /var/www/losst/data/www/losst.ru;

root $root_path;

listen :80 default_server;

}

2-я секция уже с обработкой SSL принимает запросы на 443 порту:

server {

server_name losst.ru ;

ssl on;

ssl_certificate «/var/www/losst/losst.ru_le2.crtca»;

ssl_certificate_key «/var/www/losst/losst.ru_le2.key»;

ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;

ssl_prefer_server_ciphers on;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

add_header Strict-Transport-Security «max-age=31536000;»;

charset off;

index index.php;

set $root_path /var/www/losst/data/www/losst.ru;

root $root_path;

listen :443 default_server;

}

Здесь все достаточно понятно: инструкция return обеспечивает возврат нужных кодов ответов сервера. Мы осуществляем возврат кода 301 и вводим адрес куда будет перенаправлен посетитель. Помимо инструкции return, может использоваться и rewrite. Здесь нужно выполнить такие же действия:

rewrite ^/(.*)$ permanent;

Это стандартная запись регулярных выражений. В 1-й строке нужно выделить группу строк запросов, а во 2-й прописать правильное доменное имя. Директива может использоваться и без блока server:

if ($host ~* ^(losst\.ru|www\.losst\.ru)$ ){

rewrite ^/(.*)$ permanent;

}

На этом этапе нужно сохранить файл и выполнить тестирование конфигурации nginx:

 sudo nginx -t

Если проверка прошла успешно, сделай перезапуск Nginx:

 sudo systemctl restart nginx

Теперь проверьте ответ сервера при помощи curl:

 curl -I losst.ru

Можно также дать возможность программе пройти весь путь редиректа:

curl ILa losst.ru

Сделать настройку перенаправления на https nginx не очень сложно. Все настройки сводятся к внесению строки в файл «конфиг». Редирект с https на http nginx настраивается аналогично. Необходимо только изменить несколько символов в параметрах retrun. Обязательно нужно выполнять проверку настроек перенаправлений с www и на https. Этот момент особенно важен для СЕО продвижения.

Вас также может заинтересовать: Повышение конверсии сайта: реальные способы и пошаговая инструкция

Как правильно перенести сайт с протокола http на https

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

Синтаксис и символы

  • . — Точка означает любой символ.
  • — перечень символов, совпадающих с буквами a, b, или с.
  • — перечень символов, не входящих в диапазон. Условию соответствует любой символ, кроме a, b, с.
  • * — предыдущий символ может повторяться 0 и более раз.
  • * — найти символы из заданного набора идущие подряд.
  • * — обратная операция.
  • .* — замена любого набора символов. «.*» — найти все подстроки между кавычками.
  • ^ — обознает начало строки (при использовании в начале выражения).
  • $ — конец строки.
  • \w — буква, цифра или подчёркивание _.
  • \d — любая цифра.
  • \D — любой символ, кроме цифр.
  • — указание на любую цифру.
  • — указание на любую букву от a до z с нижним регистром.
  • — указание на любую букву от A до Z с верхним регистром.
  • — любая буква от a до Z, регистр не важен.
  • — тоже самое, только короче.

Флаги для доп. опций

  • NC — NoCase отключает проверку регистра символов при срабатывании правила.
  • R — Redirect останавливает изменение URL-адреса и возвращает результат. Самое популярное значение R=301, однако встречаются и другие для временных редиректов (302, MOVED TEMPORARY).
  • L — Last останавливает создание URL-адреса и строка считается окончательной.

301 редирект с одного доменного имени на другое

Все что мы описывали можно провернуть не только с одним доменом, но и с совершенно разными (для поисковиков они все разные).

Вот например возникли у вас проблемы с вашим хостингом, или просто разонравилось доменное имя (например было plohoy-domen.ru, а захотелось ochen-horoshiy-domen.com), как сделать новое доменное имя с тем условием, чтобы статьи которые вы писали не потерялись и постоянные читатели не исчезли. Опять же в помощь вам будет 301 редирект. Открываете файл .htaccess и добавляете в него нужный блок:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} plohoy-domen.ru 
RewriteRule ^(.*)$ http://ochen-horoshiy-domen/$1 

Теперь если в браузере вы будете набирать адрес plohoy-domen.ru, то вас автоматически будет перебрасывать на страницу ochen-horoshiy-domen.com.

Очень важно не ошибиться при выборе Host-а и в том, как будет осуществляться поиск вашего блога с www или без, так как ошибки могут привести к тому, что ваш ресурс может быть выкинут из индекса. На этом у меня все, уважаемы читатели

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

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

(adsbygoogle = window.adsbygoogle || []).push({});

Как сделать перенаправление с WWW на домен без WWW

301 редирект в файле .htaccess

Заключается данный способ в том, что нужно настроить файл .htacess. Найти его можно в корневой папке блога. Его может и не быть, а так же он может быть скрыт от вас. Сначала проверим его наличие. Осуществим мы это с помощью программы FileZilla, предоставляющей нам доступ к файлу через FTP. Качаете программу FileZilla и запускаете ее. В открывшееся окно ввести IP адрес домена  и пароль доступа, которые обычно высылает вам ваш хостиг-провайдер.

Далее необходимо открыть меню СЕРВЕР и выбрать пункт ПРИНУДИТЕЛЬНО ОТОБРАЖАТЬ СКРЫТЫЕ ФАЙЛЫ.

(adsbygoogle = window.adsbygoogle || []).push({});

Откройте файл .htaccess с помощью текстового редактора, например Notepap++ или Akelpad (которым пользуюсь я).  В этом файле дописываем следующий блок (адрес моего блога замените на свой):

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.dmitriyzhilin\.ru$ 
RewriteRule ^(.*)$ https://dmitriyzhilin.ru/$1 

Если вы хотите сделать не так как у меня, а настроить главным зеркалом домен с www, то ваш редирект будет выглядеть вот так:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^dmitriyzhilin\.ru$ 
RewriteRule ^(.*)$ https://www.dmitriyzhilin.ru/$1 

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

Не забывайте сделать копию первоначальной версии файла.

Примеры использования для защиты сайта от множественных дублей страниц

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

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

Таким образом, все домены типа www.site.ru, www.site.net, test.site.com будут переадресовываться на сайт www.site.com.

Как удалить несколько слешей/тире в урле

Иногда «по случайности» в урле могут появиться по несколько слешей, например, www.site.com/catalog////page-1.html. В таких случаях необходимо делать 301 редирект на страницу с одним слешем www.site.com/catalog/page-1.html :

Аналогично, можно склеить в урле несколько дефисов в один: с www.site.com/catalog/page—1.html на www.site.com/catalog/page-1.html:

Как сделать редирект с любого урла на url только в нижнем регистре

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

Перенаправление запросов для отсутствующих доменов (перенаправление по умолчанию)

Если обращение к веб-серверу идет по IP-адресу или домену, который не прописан в конфигурационном файле, можно перенаправить весь трафик на домен по умолчанию:

server {
        listen 80 default_server;
        return 302 https://welcome.domain.ru$request_uri;
}

или независимо от протокола:

server {
        listen 80 default_server;
        return 302 $scheme://welcome.domain.ru$request_uri;
}
server {
        listen 443 default_server;
        return 302 $scheme://welcome.domain.ru$request_uri;
        ssl on;
        ssl_certificate /etc/nginx/ssl/cert.pem;
        ssl_certificate_key /etc/nginx/ssl/cert.key;
}

* $scheme позволяет перевести запрос на тот же протокол (http или https), по которому он был инициирован.
* если nginx должен слушать и обрабатывать запросы по https, необходимо указывать в настройках пути к сертификатам.

Услуги

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

Скорость загрузки сайта — один из факторов ранжирования в поисковых системах. Увеличить ее можно в том числе с помощью директив в .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.

Влияют ли 301 редиректы на поисковую оптимизацию?

Большинство специалистов по поисковой оптимизации обращают внимание на связь между 301 редиректом и рангом PageRank. Не знакомы с PageRank? Это формула, созданная компанией Google для определения «ценности страницы» на основе количества и качества ее ссылок

Конечно, PageRank —далеко не единственный «фактор ранжирования», но обычно считается, что в целом более высокий PageRank соответствует более высокому рейтингу

Не знакомы с PageRank? Это формула, созданная компанией Google для определения «ценности страницы» на основе количества и качества ее ссылок. Конечно, PageRank —далеко не единственный «фактор ранжирования», но обычно считается, что в целом более высокий PageRank соответствует более высокому рейтингу.

Это как-то доказано? Да, компания Google (пере)утвердила PageRank в качестве сигнала для ранжирования в прошлом году:

Существует также четкая положительная корреляция между, который работает аналогично рангу PageRank, и объемом органического трафика, получаемого на странице:

Примечание.Причина, по которой я говорю о рейтингах URL (UR), а не о PageRank, заключается в том, что компания Google перестала публично обновлять PageRank в  году. Теперь не существует способа узнать ранг PageRank для страницы. Я ни в коем случае не говорю, что UR является эквивалентом PageRank, но это самая близкая сопоставимая метрика, существующая на сегодняшний день. 

И как это все-таки относится к 301 редиректам?

Если вы использовали 301 редирект для перенаправления одной страницы на другую до 2016 года, то теряли попутно PageRank. Насколько именно? Это спорный вопрос, но было принято считать, что примерно на 15%. Это то же число, на которое ссылался Мэтт Каттс, бывший глава Google по веб-спаму, в этом видео 2013 года:

Примечание. На самом деле в этом видео Мэтт не говорил, что 301 редирект приводит к потере 15% ранга PageRank. Он просто привел фигуральный пример. Тем не менее, именно это число большинство специалистов по поисковой оптимизации использовали в течение нескольких лет. Это, вероятно, связано с тем, что 15% также относится к «коэффициенту затухания» в оригинальном патенте PageRank.

Исключительно в целях дискуссии предположим, что этот уровень составлял именно 15%.

Вот что в этом случае получается:

Однако компания Google изменила свою официальную позицию по этому вопросу в 2016 году:

Таким образом, в 2019 году, если вы перенаправите domain.com/page1 на domain.com/page2, то конечная страница должна иметь столько же «силы», сколько и исходная страница.

Это ОЧЕНЬ важно, и это одна из причин, по которым 301 редиректы могут быть очень полезными для увеличения органического трафика. (Подробнее об этом позже!). Но 301 редиректы могут вызвать множество других проблем, связанных с поисковой оптимизацией, о которых не часто говорят

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

Видеоматериал

Первый стать невидимым в ВК для пользователей браузера Firefox

  1. Введите в адресную строку браузера “about:config” и нажмите Enter. После этого вы увидите настройки программы.
  2. На некоторое время делаем запрет на переадресацию. Для этого в поисковой строке вводим “network.http.redirection-limit” и указываем в его свойствах нулевое значение.
  3. Далее заходим в собственный аккаунт (персональную страницу) путем ввода в адресную строку браузера http://vkontakte.ru/login.php, вводим логин и пароль от учетной записи.
  4. Видим сообщение об ошибке. Не бойтесь, это вполне нормально, так и должно быть.
  5. Переходим на любую понравившуюся страницу социальной сети Вконтакте, но только не на “profile.php”.
  6. Возвращаемся к настройкам браузера, вводим в поисковую строку настроек “network.http.redirection-limit” и возвращаем этому параметру то значение, которое было у него до изменений (по умолчанию).

Путь хранения файлов сессий

Настраиваем редиректы для 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» на старый и новый домен соответственно.

Проксирование

Проксирование, в отличие от редиректа, не передает инструкции браузеру перейти на другой url — NGINX сам выполняет http-запрос по другому адресу и возвращает готовый ответ. Эта возможность может применяться для внутреннего распределения серверных ресурсов.

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

1. На другой сервер

Пример внутреннего перенаправления http-запроса на другой веб-сервер:


location / {
            proxy_pass $scheme://192.168.0.15:8080/;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
}

* в данном случае, принимать запросы от браузера и отвечать на них будет NGINX, а сама обработка будет выполняться на сервере с IP-адресом 192.168.0.15 на порту 8080.

Использование NGINX в качестве http-прокси:

server {
        …
        server_name site1.ru www.site1.ru;
        location / {
            proxy_pass http://192.168.1.21/;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
}
server {
        …
        server_name site2.ru www.site2.ru;
        location / {
            proxy_pass http://192.168.1.22/;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
}

* в данном примере запросы на site1.ru будут перекинуты на сервер 192.168.1.21, а запросы на site2.ru — 192.168.1.22.

HTTP proxy с авторизацией (если удаленный веб-сервер требует аутентификации):

server {
    …
    location / {
        proxy_pass http://10.10.10.10/page/;
        proxy_set_header Authorization «Basic dGVzdDp0ZXN0»;
        …
    }
}

* где 10.10.10.10/page — страница, на которую будут перекинуты запросы; dGVzdDp0ZXN0 — логин:пароль test:test, закодированные в формате base64.

2. Часть url на другой сервер

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

server {
    …
    location  ~ ^/page1/(.*)$ {
        proxy_pass   $scheme://10.10.10.10/$1;
    }
}

* и так, в данном примере при обращении по адресу site.ru/page1/<что-то еще>, nginx сделает внутренний запрос на сервер 10.10.10.10 по адресу 10.10.10.10/<что-то еще> и вернет готовый ответ.

3. На другой сайт

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

server {
    …
    location / {
        proxy_pass https://www.dmosk.ru;
        proxy_set_header   Host             www.dmosk.ru;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

* в данном случае мы при обращении к нашему серверу будем попадать на сайт https://www.dmosk.ru

Обратите внимание, что в proxy_set_header мы передаем хосту его имя — в противном случае, как правило, другой сервер вернет ошибку. Также мы не указываем proxy_redirect, иначе, nginx будет переводить запросы на реальный сайт (отправлять инструкции браузеру перейти на него), а не тот, что мы используем за http-прокси

4. Редиректы при проксировании

Если при проксировании хост возвращает инструкцию браузеру для выполнения редиректа, обозреватель может сменить адрес сайта. Это особенно не удобно, когда проксирование мы выполняем на другой сайт. Чтобы отловить редиректы и заменить их своими значениями, мы должны воспользоваться опцией proxy_redirect. Рассмотрим ее применение для предыдущего примера, когда мы проксировали запрос на сайт www.dmosk.ru:

server {
    listen 80;
    server_name dmosk.local www.dmosk.local;
    location / {
        proxy_pass https://www.dmosk.ru;
        proxy_set_header   Host             www.dmosk.ru;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_redirect https://www.dmosk.ru/url1 http://dmosk.local/url2;
        proxy_redirect https://www.dmosk.ru/ http://dmosk.local/;
    }
}

* в конкретном случае мы проксируем запросы http://dmosk.local на сайт www.dmosk.ru, но если он вернет инструкцию для редиректа https://www.dmosk.ru/url1, в браузере он должен быть заменен на http://dmosk.local/url2. А также любое перенаправление для https://www.dmosk.ru/ будет заменено на http://dmosk.local/.

Как сделать редирект через файл htaccess для интернет-магазина на Opencart

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

Redirect 301 site.ru/page1/ site.ru/page2/

Где:

  • page1- страница которая будет переадресовывать;
  • page2 – открывающийся документ.

Важно! Можно записывать адреса в относительном виде, например, /page1/ и /page2/. Также допускается использование конструкции:

Также допускается использование конструкции:

Redirect permanent site.ru/page1/ site.ru/page2/

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

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

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

Настроить переадресацию можно через панель управления вашим хостингом или вручную средствами HTML, PHP, JavaScript.

В настройках конкретного хостинга обычно подробно описано, как сделать редирект через панель управления. Для разных CMS есть специальные плагины для редиректов. Разберем способы для настройки вручную на примере редиректа на сайт с www или без него.

Редирект для Nginx

Для серверов под Nginx нужно использовать файл nginx.config, добавьте код в секцию server. Если вы настроили виртуальные хосты, для каждого хоста нужно редактировать файлы отдельно.

С домена с www на домен без www

server {#...
    if($host~ * www\.(.*)) {
        set $host_without_www $1;
        rewrite ^ (.*) $ http: //$host_without_www$1 permanent;
    }#...
}

С домена без www на домен с www

server {#...
    if($host~ * ^  + \. + $) {
        rewrite ^ (.*) $ $scheme: //www.$host$1 permanent;
    }#...
}

После изменения nginx.config перезапустите nginx с помощью команды «service nginx restart». Проверить, все ли корректно заполнено, можно через команду «nginx -t».

Редирект для Apache

Если вы используете Apache, вам нужен файл .htaccess. Для доступа есть несколько вариантов:

  • Используйте FTP и включите отображение скрытых файлов. Найдите .htaccess в каталоге public_html в папке с названием домена.
  • Откройте панель управления хостингом, включите отображение скрытых файлов и найдите его через Диспетчер файлов.

Скачайте .htaccess, добавьте код редиректа и загрузите файл заново. Если файла .htaccess нет, его нужно создать.

На домен без www

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site\.ru$ 
RewriteRule ^(.*)$ <a href="https://site.ru/https://site.ru/$1" class="redactor-autoparser-object">https://site.ru/https://site.ru/$1</a> 

На домен с www

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) <a href="http://www.site.ru/http://www.site.ru/$1" class="redactor-autoparser-object">http://www.site.ru/http://www.site.ru/$1</a> 

Редирект через PHP

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

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

На домен без www

<!--?php
header("Location: http://site.ru/", true, 301);
exit();
?-->

На домен с www

<!--?php
header("Location: http://www.site.ru/", true, 301);
exit();
?-->

Редирект через HTML

Редирект через HTML-код медленнее, он работает на стороне браузера. Код нужно добавить между тегами и страницы, с которой нужно перенаправить. В параметре content=»» указывают задержку по времени.

На домен без www

<meta http-equiv="refresh" content="0; url=http://site.ru/">

На домен с www

<meta http-equiv="refresh" content="0; url=http://www.site.ru/">

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

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

Код для редиректа нужно добавить между и в код первой исходной страницы.

На домен без www

<script type="text/javascript">
    window.location.replace("http://site.ru/");
</script>

Для задержки:

На домен с www

<pre><script>
    window.location.replace("http://www.site.ru/");
</script></pre>

Через cPanel

cPanel — это платная панель управления веб-хостингом. В ней тоже можно настроить редиректы, причем не используя вводы кодов. Во вкладке «Домены» есть раздел «Перенаправления», там нужно настроить редирект.

На домен без www

  1. В списке выберите нужный домен.
  2. В поле «Перенаправляет на» пропишите его с префиксом http://.
  3. Поставьте отметку у «Перенаправлять только с www»

На домен с www

  1. В списке выберите нужный домен.
  2. В поле «Перенаправляет на» пропишите его с префиксом http://www.
  3. Поставьте отметку у «Не перенаправлять www»

Поисковые фразы

Какие ошибки допускают, настраивая 301 редирект

  1. Создание многошагового редиректа. Чем сложнее процесс перехода, тем больше вероятность снижения его скорости и потери ссылочного веса.
  2. Применение неработающих в вашем случае редиректов. Каждый редирект имеет свои нюансы, которые надо учитывать при выборе подходящего именно вам.
  3. Использование внутренних редиректов без смены ссылок на новые адреса. Когда процесс внедрения редиректов на сайте завершен, необходимо убедиться в том, что каждая страница вашего сайта уже ссылается на новую, а внутри сайта у вас нет ссылок на страницы, с которых происходит редирект.
  4. Редирект на не релевантные страницы/контент. Чем выше релевантность страницы (похожей страницы или ветки каталога/раздела, к которому принадлежала данная страница), тем она привлекательнее для редиректа.
  5. Неверный выбор между rel=canonical и 301 редиректом. Подробнее об этом изложено выше.
  6. Редирект, конечной точкой которого является не 200-я страница. Редирект должен вести на правильно работающую страницу с 200 ответом сервера. Иначе вы можете сбить поисковых роботов, которые будут выдавать 404 ответ.
  7. Редирект robots.txt. К примеру, нужно прописывать директиву Host для Яндекса при склейке доменов.

Редирект в .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 

Советы и рекомендации

Подводя итоги, можно дать следующие рекомендации, касающиеся ярлычков на одежде:

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

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

  2. Многие люди срезают вшитые ярлычки, что делать не рекомендуется, поскольку с течением времени условия ухода за вещью могут быть забыты.
  3. На ярлычках также могут присутствовать буквенные обозначения, которые объясняют основные правила химчистки:

    • Буква Aпозволяет осуществлять сухую чистку с задействованием любых разновидностей растворителей.
  4. Буква P разрешает проводить такую чистку только с использованием хлорного этилена или углеводорода.
  5. Буква F допускает применение только углеводорода или трифтортрихлорметана.
  6. При этом под буквами P или F могут присутствовать линии, которые показывают, что данную вещь можно подвергать только щадящей чистке.
Добавить комментарий

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

Adblock
detector