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

Содержание
  1. Почему не правильно работает 301 редирект?
  2. Почему не работает Redirect 301?
  3. Не работает редирект
  4. Как устранить проблему с редиректом в .htaccess?
  5. Почему не работает редирект с WWW? — Хабр Q&A
  6. Почему не работает редирект с www?
  7. Html-перенаправления
  8. Для решения проблемы дублей
  9. Для сохранения ссылочного веса и трафика при смене url
  10. Зачем настраивать редирект
  11. Как исправить ошибку перенаправлений (редиректов)
  12. Как настроить 301 редирект
  13. Как определить причину цикличного перенаправления
  14. Куда вас отредиректили, или как не сломать все
  15. Неверный код ответа сервера
  16. Ответ сервера 301 moved permanently
  17. Ответ сервера 302 found
  18. Ответ сервера 303 see other
  19. Ответ сервера 304 not modified
  20. Ответ сервера 307 temporary redirect
  21. Ответ сервера 308 permanent redirect
  22. Перенаправление на нерелевантный контент
  23. Перенаправление на несуществующую страницу
  24. Перенаправление при добавлении завершающего слеша
  25. Правильные настройки редиректов (перенаправлений)
  26. Принудительно без www
  27. Принудительно с www
  28. Редирект для apache
  29. Редирект для nginx
  30. Редирект через html
  31. Редирект через javascript
  32. Редирект через php
  33. С домена без www на домен с www
  34. Сайт выполнил переадресацию слишком много раз или err too many redirects: как исправить
  35. Создать код редиректа автоматически
  36. Ссылки на старые страницы внутри сайта
  37. Тег canonical вместо 301 редиректа
  38. Точки зрения на редиректы
  39. Цепочки редиректов
  40. Через cpanel
  41. Краткий итог

Почему не правильно работает 301 редирект?

Нужно сделать пару специфических редиректов. Но возникла проблема, если редирект имеет больше одного «/» то он не правильно работает. Нужно убрать .html в конце адреса + добавить слово category. Пример:

Redirect 301 /led-parts/korpus.html site.ru/category/led-parts/korpus (Почему-то перенаправляет на /category/led-svet/led-strip/led-strip-dip.html).

А редирект Redirect 301 /led-parts/korpus site.ru/category/led-parts/korpus работает корректно. В чём может быть проблема? Где я ошибся?

  • Вопрос задан более трёх лет назад
  • 387 просмотров
Читайте также:  Ldap сервер как настроить

Прочитал обсуждения и хотел бы добавить что редиректы кэшируются на разных уровнях(браузер, роутер) и надо проводить их отладку через сторонний сервис bertal

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

Спасибо за сервис, посмотрю его. Ошибка была в том, что один редирект мешал другому.
Redirect 301 /led-lamp/ www.site.ru/category/led-lamp (нормально работал)
Redirect 301 /led-lamp/lampa.html www.site.ru/category/led-lamp/lampa (брал адрес /led-lamp/ и игнорил остальной url и перебрасывал на страницу www.site.ru/category/led-lamp/lampa.html)

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

Источник

Почему не работает Redirect 301?

@GingerbreadMSK Подскажите еще, пожалуйста, почему не получается у меня сделать переадресацию согласно примера:
RewriteEngine on
RewriteCond % ^Mozilla.*
RewriteRule ^/$ /homepage.max.html [L]

Я пробую вот так ее написать:
RewriteEngine on
RewriteCond % ^Mozilla.*
RewriteRule ^/htaccess/$ /app/chrome.php [L]

мои index.php:
localhost/htaccess/index.php

Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех директорий, где находится другой файл .htaccess (и кроме всех папок «ниже» этой папки со вторым .htaccess).

И. не совсем понятна структура, цель и смысл таких «костылей».

Это в целях изучения материала, чтобы усвоить как оно все работает.

Если я правильно понимаю данный мною htaccess файл, то он говорит следующее:
— Включаю СлужбуПерезаписи
— Условие: Проверяем HTTP_USER_AGENT и если находим в нем слово которое начинается на Мozilla и заканчивается на любой символ
— Правило: Тогда, после части url ^/htaccess/$ будет подставляться /app/chrome.php [Последнее правило]

А согласно расположения файла, то он у меня был в корне, тоесть он должен работать у меня, не так ли? Простите что может не понял что вы имели в виду под намеком.

Источник

Не работает редирект

На локалхосте всё отлично работало, перенес сайт на хостинг перестало работать перенаправление

В чём может быть причина?

Провреил, сделал пустой файл с таким содержимым, работает перенаправление, а на других страницах нет%)

Не работает редирект
Доброй ночи! Я написал форму и сделал к ней проверки, если все норм то человек переходит на.

Не работает редирект
Всем привет! Хочу склеить сайты с WWW и без — но ничего не выходит, обыскал пол интернета, все.

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

Не работает редирект
Всем привет! Хочу склеить сайты с WWW и без — но ничего не выходит, обыскал пол интернета, все.

Не работает на хостинге.

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

Добавлено через 2 минуты
а вообще может модуль какой не включен на хостинге для редиректа? хотя по твоим словам «сделал пустой файл с таким содержимым, работает перенаправление» — дб все включено.
а если так написать http://www.lalala/index.php

Так объясняю, сделал сайт на локалхосте — всё работает. перенес его на внешний хостинг, начал тестировать. на странице авторизации, есть редирект. http://presentation.gostkov.ru/
юзер: test, пароль: 1
при атворизации получаем белый экран.
Погуглив наткнулся на такой текст, что header может не работать если перед ним происходит какой то вывод на экран, я создал файл в нем только код перенправления, редирект заработал,
добавил строку echo «hello»; ставл выводить hello, я протестировал это код на локалхосте, на локалхосте происходит редирект!

Добавлено через 34 минуты
Тех.поддержка ответила:
Перед header’ом никаких вызовов быть не должно.
/* This will give an error. Note the output
* above, which is before the header() call */

Источник

Как устранить проблему с редиректом в .htaccess?

в корне сайта лежит .htaccess с RewriteEngine on Есть подраздел мобильной версии и в нем тоже лежит .htaccess RewriteEngine on

Может ли это быть причиной ошибки «ERR_TOO_MANY_REDIRECTS Сайт выполнил переадресацию слишком много раз» ??

В корне сайта лежит такой .htaccess

А в поддериктории с мобильной версией (https://site.ru/m/) такой .htaccess

  • Вопрос задан более года назад
  • 130 просмотров

Сайт выполнил переадресацию слишком много раз

У меня php скрипт стоит не перенапревление на мобильную версию

Что значит «стоит не перенапревление»?

вот сам код: если закоментировать эти строчки, то работает. Но сам код тоже нужен, т.к. он определяет с какого устройства зашел пользователь и перенаправляет на мобильную или PC версию сайта

wisgest, убрал else, но ему чем то все равно не нравится этот код.

Он располагается в самом начале страницы, выше , может в это дело?

Разобрался, оказывается функция isMobile() кривая, лучше использовать функцию с этого сайта detectmobilebrowsers.com

wisgest Благодарю за помощь, напишите ниже что проблема в Location была, чтобы мог отметить решением

Источник

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

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

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

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

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

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

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

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

Дубли страниц возникают не только из-за разных протоколов и префикса 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-перенаправлениями, используйте корректные коды ответа сервера и внимательно выбирайте страницу, на которую настраиваете редирект. Очень важно, чтобы ваши перенаправления не путали поисковых роботов и не вызывали недоумения у пользователей.

Обязательно разберитесь, чем отличаются редиректы и 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

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

Сайт выполнил переадресацию слишком много раз или 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. Также, с помощью данной статьи, вы сможете сами протестировать, найти причину ошибки, а также устранить ее самостоятельно.

Источник

Оцените статью