Почему не работает редирект с WWW? — Хабр Q&A

Почему не работает редирект с WWW? — Хабр Q&A

Почему не работает редирект с www?

))) я вообще не вижу в этом проблемы, создал в корне сайта файл

.htaccess

– раз

Открыл файл, написал:

AddDefaultCharset UTF-8

RewriteEngine On
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

– два

И сохранил, никаких редиректов и лишних файлов, я на этих SSL-сертификатах собаку съел )))
У меня всё работает отлично !
P.S. примечание, как видно в примере выше, я не писал www , он там и не нужен, при наборе ссылки с www возвращает
https://example.com

Html-перенаправления

Этот вид перенаправления происходит на этапе загрузки HTML-кода страницы. Реализуется он с помощью тега <meta> и имеет следующий вид:

Для решения проблемы дублей

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

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

Для сохранения ссылочного веса и трафика при смене url

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

Зачем настраивать редирект

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

Как исправить ошибку перенаправлений (редиректов)

Шаг №1: Очистить кэш и куки браузера

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

  • В Google Chrome нажмите Ctrl Shift Delete, выберите необходимые данные, время жизни данных и нажмите Очистить данные (clear data)
  • В Mozilla Firefox нажмите кнопку «Меню» и выберите «Параметры». Выберите Конфиденциальность, а затем очистить свою недавнюю историю (clear your recent history). Выберите Everything для диапазона времени, а затем нажмите Очистить сейчас (Clear Now).

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

Шаг №2: Попробовать в других браузерах

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

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

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

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

Как определить причину цикличного перенаправления

Вы можете следить за всеми перенаправлениями с помощью инструментов разработчика в браузере Firefox или Chrome. Эти инструменты обычно открываются нажатием клавиши F12 (или Ctrl Shift I). Откройте Сеть (Network), а затем перезагрузите страницу, на которой у вас возникла проблема.

После перезагрузки страницы вы увидите список перенаправлений. Проанализировав результаты, вы сможете найти «виновника» (если срабатывает перенаправление на одну и ту же страницу).

Куда вас отредиректили, или как не сломать все

Редиректы — это базовая механика, которую должен понимать каждый  SEO-специалист. Они имеют колоссальное влияние на оптимизацию сайта, поэтому очень важно использовать их правильно. Не злоупотребляйте HTML- и JS-перенаправлениями, используйте корректные коды ответа сервера и внимательно выбирайте страницу, на которую настраиваете редирект. Очень важно, чтобы ваши перенаправления не путали поисковых роботов и не вызывали недоумения у пользователей.

Сейчас ищут техподдержку:  Цифровой сертификат безопасности: для чего это нужно? / Блог компании REG.RU / Хабр

Обязательно разберитесь, чем отличаются редиректы и rel=”canonical”, а если сомневаетесь, как поступить, смело обращайтесь к материалам нашего блога и пишите вопросы в комментариях. Также советуем регулярно проверять свой сайт на наличие ошибок в редиректах — с помощью инструмента «Анализ сайта» сделать это очень просто.

Неверный код ответа сервера

Часто бывает, что вместо постоянного 301 перенаправления используется ответ 302. Для пользователя это совершенно незаметно, но с точки зрения поисковиков два кода ответа несут совершенно разные посылы. Поэтому если вы хотите на постоянной основе перенаправлять трафик, вес ссылок и параметры страницы от старого документа к новому, следите за кодами ответа сервера.

Имеет смысл проверить, какой код ответа отдают ваши существующие редиректы. В «Анализе сайта» эта проверка называется «Временные редиректы 302, 303, 307».

Ответ сервера 301 moved permanently

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

Ответ сервера 302 found

302 редирект говорит о том, что страница нашлась, но она временно переехала на другой URL, который следует использовать. В такой ситуации вполне логично не передавать все параметры от старого URL-адреса к новому, пока временное перенаправление не прекратится или не станет постоянным.

Ответ сервера 303 see other

Ответ сервера 303 говорит о том, что документ найден, но необходимо использовать метод GET. Использование такого рода редиректа должно быть обосновано реальной необходимостью. 

Ответ сервера 304 not modified

Ответ сервера 304 используется, чтобы сообщить браузеру, что запрашиваемый URL не менялся и можно использовать текущею версию страницы. Таким образом можно экономить трафик и снизить нагрузку на сервер. 

Технически это работает так:

  1. Клиент отправляет серверу запрос с заголовком If-Modified-Since с датой, которая сравнивается с датой последнего обновления Last-Modified. 
  2. Если окажется, что дата Last-Modified старее, чем дата в If-Modified-Since (то есть в кэше браузера хранится актуальная версия страницы), браузер получит код ответа 304 и не будет загружать страницу заново. Если страница обновлялась после даты Last-Modified (а значит версия из кэша устарела) — от сервера придет ответ 200 и браузер загрузит свежую версию страницы.    

304 редирект — это мощный инструмент для оптимизации нагрузки на сервер и экономии краулингового бюджета. 

Ответ сервера 307 temporary redirect

Ответ сервера 307 похож на 302, но имеет одно отличие. Он сообщает браузеру, что если в первом запросе использовался метод POST, то его нужно использовать и дальше. Как и в случае с 308 редиректом, 307 код ответа используется, когда нужно гарантировать, что метод POST не будет изменен в ходе перенаправления.

Ответ сервера 308 permanent redirect

Этот ответ сервера говорит о том, что страницу переместили на постоянной основе. 308 редирект практически не отличается от 301 и в целом выполняет ту же функцию, но с одним отличием: при использовании метода POST для передачи данных 301 редирект позволяет потом заменить его на GET, а 308 — нет.

В этой статье мы еще упомянем методы GET и POST, поэтому давайте разберемся, что же это такое.

Перенаправление на нерелевантный контент

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

Сейчас ищут техподдержку:  Горячая линия гибдд московской области круглосуточно

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

Перенаправление на несуществующую страницу

Страница, на которую настраивается редирект, должна:

При этом страница НЕ должна:

  • содержать запрет на индексирование в ответе сервера 
  • содержать запрет на индексирование в теле документа
  • указывать на другую страницу как на каноническую

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

Проверить, нет ли вашем сайте страниц с редиректом на 4ХХ или 5ХХ страницы, можно в один клик в разделе «Редиректы». 

Перенаправление при добавлении завершающего слеша

Когда вы вбиваете адрес страницы в строку поиска, то скорее всего не добавляете слеш в конце. Иногда браузер сам «дописывает» его к URL-адресу — происходит это благодаря редиректу. Как и в случае с протоколом и www, вебмастеру нужно определиться, будут ли на сайте использоваться завершающие слеши, чтобы избежать проблем с дублями.

Правильные настройки редиректов (перенаправлений)

Как мы уже упоминали выше, причиной ошибки могут быть неправильные настройки на вашем сайте. В основном, они касаются настроек редиректов в файле .htaccess. Данный файл – это файл конфигурации, который используется для изменения поведения сервера Apache для каждой папки на сайте или сервере.

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

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

Принудительно без www

Следующий код в файле .htaccess проверяет, был ли запрошен сайт с www в начале доменного имени. Если www есть в URL, тогда он переписывает запрос и говорит браузеру перенаправить на доменное имя без www:

Принудительно с www

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сейчас ищут техподдержку:  Сообщить о новом сайте google

Сайт выполнил переадресацию слишком много раз или err too many redirects: как исправить

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

Создать код редиректа автоматически

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

Ссылки на старые страницы внутри сайта

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

Получить полный список внутренних ссылок на страницы с редиректом очень легко — ищите их в «Анализе сайта» в категории «Коды ответа сервера». Проверка называется «Внутренние ссылки на страницы с 3ХХ редиректом». 

Тег canonical вместо 301 редиректа

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

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

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

Точки зрения на редиректы

SEO — область знаний, которая полна мифов и гипотез. 

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

  1. 301 редирект не передаетпередает санкции поисковых машин
  2. 302 редирект не передаетпередает санкции поисковых машин 
  3. 302 редирект передает ссылочный вес в очень малом объеме

Наверняка у вас есть свое мнение на этот счет. Смело делитесь им в комментариях и пишите, какие еще точки зрения на редиректы известны вам. 

Цепочки редиректов

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

Через cpanel

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

Краткий итог

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

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

Спасибо, что читаете нас!

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Оставьте комментарий

Adblock
detector