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

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

Почему не работает 301 редирект на сайте (битрикс)?

Добрый день.

Не могу понять почему не работают редиректы на сайте.

Часть файла htaccess

Options -Indexes 
ErrorDocument 404 /404.php

<IfModule mod_php5.c>
  php_flag session.use_trans_sid off
  #php_value display_errors 1
  #php_value mbstring.internal_encoding UTF-8
</IfModule>

<IfModule mod_rewrite.c>
  Options  FollowSymLinks
  RewriteEngine On
  
  RedirectMatch 404 /.git
  RedirectMatch 404 /.idea
    #RedirectMatch 404 /*.txt

    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTP_HOST} !develop.site.ru
    RewriteCond %{HTTP_HOST} !site.loc
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
    RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

    RewriteCond %{HTTP_HOST} ^xn----12dq.xn--p1ai$ [NC]
    RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
    RewriteRule ^index.php$ https://site.ru/ [R=301,L] 
     
  Redirect	301	https://site.ru/catalog/600-lit600l/	https://site.ru/catalog/kompostery-dlya-/
  			
  Redirect	301	/catalog/aksey/gavyy/	https://site.ru/catalog/tuovye_ball/
  		
  Redirect	301	^/catalog/balili/venti/$	https://site.ru/catalog/ballonnzov/
  
  
  RewriteCond %{QUERY_STRING} ^catalog/bochki/bocl/$ 
  RewriteRule ^(.*)$  https://site.ru/catalog/bocl/? [R=301,L]
  
    RewriteRule ^catalog/(. )/ooo-rossiya/.*$ https://site.ru/catalog/$1/noya/$2 [R=301,L]
    RewriteRule ^catalog/(. )/rusinkossiya-/.*$ https://site.ru/catalog/$1/rusa/$2 [R=301,L]
    RewriteRule ^stati/brazhechkakh/.*$ https://site.ru/stati/$1 [R=301,L]
   ...

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

Диагностика ошибок

Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.

301 редирект с 404 not found

Код 404 Not Found (страница не найдена) присваивается удалённой или несуществующей странице на сайте, а также часто возникает при попутке неправильно ввести url-адрес. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам.

301 редирект для страниц 404 Not Found сделать совсем несложно. Например, этот код перенаправит со всех 404-страниц на главную сайта:

1. C помощью файла .htaccess (для веб-сервера Apache)

Как найти файл .htaccess?

Как правило, файл размещен в корневой директории сайта:
image7 1 - Настройка 301 редиректа: полная инструкция

Чтобы попасть в корневую папку сайта, вы можете использовать несколько способов:

  • Файловый менеджер хостинга;
  • Подключиться через FTP клиент;
  • Использовать SSH доступ.

После нахождений файла достаточно нажать на него правкой кнопкой:
image17 - Настройка 301 редиректа: полная инструкция

И выбрать редактиврование.

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

Итак, мы уже нашли файл, открыли его. Теперь мы можем настроить 301 редирект .htaccess. Мы подготовили 14 примеров наиболее частого использования 301 редиректа.

Практические примеры:

– Переадресация с одной статической страницы на другую

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

Пример простого 301 редиректа:

Cpanel

Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:

Joomla

В панели администратора этой CMS нужно перейти в раздел «Компоненты» => «Перенаправление». В окне можно настраивать правила редиректа для различных страниц, а также отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.

Opencart

Для Opencart редактируется файл .htaccess. Код переадресации выглядит так:

WordPress

Для самой массовой CMS существуют десятки плагинов для создания постоянного редиректа. Наиболее популярные среди них: Redirection, Simple 301 Redirects, Quick Page, SEO Redirection и Safe Redirect Manager.

Для примера, разберём перенаправление через плагин Redirection. Его настройка производится через консоль сайта во вкладке «Инструменты» или через раздел плагинов. Чтобы сделать переадресацию, достаточно заполнить два поля — Source URL и Target URL. Соответственно, в первой графе будет указан старый адрес, во второй — новый, без или с www.

Сейчас ищут техподдержку:  Техническая поддержка и сопровождение сайтов

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

Автоматическое создание кода

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

Альтернативные способы настройки переадресации

Если по какой-то причине вы не можете создавать и редактировать web.config или .htaccess (например, в силу ограничений на хостинге) или вам нужна определенная обработка полученных данных, их модификация или проверка, по результатам которой реализуется перенаправление, вы можете настроить редирект с помощью PHP.

Синтаксис следующий:

Битрикс

Для перенаправления на новую страницу достаточно отредактировать файл .htaccess, внеся в него такой редирект:

Борьба с дублями на сайте

Также 301 редирект используется в борьбе с дублями страниц. Приведем несколько примеров.

Действия при циклическом редиректе

  1. Если ошибка возникла в процессе настройки. Следует проверить корректность соблюдения правил работы 301 редиректа для конкретных адресов, по которым выдаётся ошибка.
  2. Если циклический редирект вызван вирусом. Когда зацикливание возникает при попытке открыть любой адрес на сайте, выход может быть один — откат к последней работоспособной версии, сохранённой в бекапе.
  3. Если зацикливание вызвано слишком длинной цепочкой редиректов (более пяти). Нужно сократить цепочку перенаправлений до одного шага.

Для чего он нужен

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

Зачем нужен 301 редирект

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

При 301 редиректе ссылочный профиль и авторитетность с неактуальной страницы переносится на новую.

Изменение домена

В том случае если необходимо перейти на другой домен, при этом сохранив SEO позиции, в файл .htaccess прописывают следующее:

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

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

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

Как настроить редирект, если нет опыта веб-программирования

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

Еще один вариант — настройка редиректов с помощью встроенных инструментов CMS или конструкторов сайтов (такие есть, например, в Joomla!, Wix и Тильде) или специальных плагинов.

Популярные плагины для wordpress

Настроить редиректы для сайта на WordPress можно с помощью таких плагинов:

Сейчас ищут техподдержку:  Установка и настройка Nginx |

Не уверены, что сможете правильно настроить редиректы своими руками? Лучше не рисковать — в модуле SEO системы PromoPult за вас все сделают профессиональные вебмастера. Все работы выполняются по чек-листу и в срок. Есть возможность рассрочки платежа.

Постоянный редирект для nginx

Этот веб-сервер наиболее часто используется в VPS-хостинге в связке с сервером Apache. В нем 301 редирект настраивается добавлением строк в конфигурационном файле nginx.config в секции server.

Постраничные редиректы

Приведем еще примеры настройки переадресации 301.

  • Редирект со страницы page1.html на страницу page2.html:

Предварительная подготовка

  1. Для создания 301 редиректа перейдите в панель управления вашего сайта.
  2. Проверьте наличие .htaccess файла в корневом каталоге сайта (public_html). Если файл отсутствует, создайте его.
  3. Рекомендуем все условия редирект записывать в блоке IfModule дабы избежать ошибок при выполнении файла htaccess.
    <IfModule mod_rewrite.c>
    </IfModule>
  4. Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine), при помощи команды:
    RewriteEngine On
  5. Хостинги применяют по умолчанию 302 или любой другой 3xx редирект, В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].

Далее разберём наиболее распространенные варианты 301 редиректа через .htaccess.

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

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

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

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

  1. Загрузите файл index.php на жесткий диск.
  2. Сгенерируйте код.
  3. Вставьте код в текстовый файл, сохраните его и загрузите на сервер.
  4. Укажите основной URL в настройках сайта.

Редирект на страницу с другим url (без параметров)

Иногда возникает ситуация, когда необходимо изменить url страницы, то есть перенести данные с одной страницы на другую страницу, при этом не потеряв SEO значения. В этом случае в файл .htaccess прописывают следующее:

Редирект со страниц без слеша на слеш (для всего сайта)

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

RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*[^/])$ /$1/ [R=301,L]

Редирект со страниц со слешем на без слеша (для всего сайта)

Для избегания дублей в файле .htaccess используют следующую конструкцию:

RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteRule ^(.*)/$ /$1 [R=301,L]

Или более короткий вариант:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(. )/$
RewriteRule ^(. )/$ /$1 [R=301,L]

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

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

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

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

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

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

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

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

Сейчас ищут техподдержку:  Обсудите, какими способами можно показать связи между неживой и живой природой. Какой из этих способов самый наглядный? Почему? В верхней рамке

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

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

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

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

Финальный вид файла .htaccess

Пример файла htaccess, после добавления в него редиректов.

Циклическое перенаправление

Одна из самых распространённых проблем при настройке 301 редиректа — вероятность создания не одинарного перенаправления, а целой цепочки редиректов. Это может быть вызвано некорректной настройкой файла .htaccess, плагина CMS или прямым действием вируса.

Обнаружить циклическое перенаправление помогут бесплатные онлайн-сервисы проверки редиректа. Среди наиболее популярных:

Можно также установить специальные браузерные расширения для Google Chrome и Mozilla Firefox.

Заключение

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

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

Чтобы сайт после редиректа не только открывался по нужному адресу, но и работал без сбоев, ему нужна надёжная хостинг-площадка. Размещайтесь на VPS от Eternalhost, чтобы забыть о технических сложностях и полностью сосредоточиться на развитии своего интернет-ресурса!

Подводим итоги

Лучший способ настроить 301 редирект — с помощью .htaccess. Но он подходит только для веб-серверов Apache. Для IIS придется настраивать web.config. Если же нужно не просто сделать редирект, а учесть определенные условия, то используйте PHP, но в этом случае без помощи программиста не обойтись.

Есть и другие способы (в частности, с помощью HTML и JavaScript), но это не 301 редирект, а просто перенаправление без передачи веса, что бесполезно с точки зрения SEO.

Также можно использовать плагины для популярных CMS или подключить услугу web-форвардинга, если ее оказывает ваш хостинг-провайдер.

Стоит понимать, что не всегда есть смысл использовать 301-й редирект. В некоторых случаях лучше подойдет, например, атрибут rel=”canonical”.

Какой бы вариант вы ни выбрали, главное, чтобы он правильно работал. Проверить корректность редиректов на вашем сайте и поставить задачи на внедрение переадресации можно в рамках модуля «Поисковое продвижение» системы PromoPult.

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

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

Adblock
detector