Нет редиректа index php

Содержание
  1. 301 редирект в .htaccess
  2. Что такое redirect 301
  3. Как он работает и чем отличается от других редиректов
  4. Когда и зачем использовать 301 редирект?
  5. Настраиваем 301 редирект через .htaccess
  6. Что такое .htaccess и где его взять?
  7. 301 редирект с index.php или index.html на главную
  8. Настройка 301 редирект с нескольких сайтов на один
  9. 301 редирект с www на без www
  10. 301 редирект с домена без www на домен с www
  11. 301 редирект страниц со слэшем и без
  12. Массовая замена категории через 301 редирект
  13. 301 редирект не целой категории, а конкретной страницы
  14. 301 редирект со страницы на страницу
  15. 301 редирект для url с параметрами
  16. 301-редирект со страницы без заданного параметра на главную
  17. Убираем расширения через 301 редирект
  18. 301 редирект со всех страниц на главную другого домена
  19. 301 редирект с поддомена на папку
  20. 301 редирект с HTTP на HTTPs
  21. Правильный 301 редирект на новый домен
  22. Ошибки, которые могут возникнуть при настройке 301 редиректа
  23. Как проверить, что редирект 301 работает правильно
  24. Популярные вопросы и ответы на них

301 редирект в .htaccess

С помощью 301 редиректа вы можете настроить склейку старых страниц с новыми или перенести сайт на другой домен, убрать многие дубли с сайта и многое другое. Крайне полезная вещь — поэтому нужно научиться делать его правильно!

Что такое redirect 301

301 редирект (ответ сервера HTTP 301 или Moved Permanently) – это способ постоянного перенаправления поисковых запросов и пользователей с одного URL-адреса на другой.

Как он работает и чем отличается от других редиректов

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

Читайте также:  Php developer usa salary

Основные преимущества заключаются в следующем:

  1. Постоянность: 301 редирект действует бессрочно и рекомендуется поисковыми системами при переезде страниц (так называемая склейка).
  2. Сохранение ранжирования: при использовании 301 редиректа, поисковые системы сохраняют результаты страницы на новом URL-адресе.
  3. Удобство использования: настройка 301 редиректа происходит на уровне сервера, что позволяет легко и быстро настроить перенаправление.

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

  • 302 редирект: это временный редирект, который сообщает поисковым системам и браузерам, что страница временно перемещена на другой URL-адрес. При использовании этого типа редиректа поисковые системы продолжают индексировать и ранжировать исходную страницу, а не новую.
  • 307 редирект: аналогичен 302-му, за исключением того, что при его использовании метод HTTP-запроса не меняется, то есть сохраняется оригинальный метод HTTP-запроса, в отличие от 302 редиректа, который переключается на GET-запрос.
  • Meta-редиректы: это редиректы, которые настраиваются внутри кода HTML-страницы с помощью тега и атрибута «http-equiv». Они используются для перенаправления поисковых роботов и браузеров с одной страницы на другую.

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

Когда и зачем использовать 301 редирект?

Наиболее часто он используется для следующих целей:

  1. Перемещение сайта на новый домен: позволяет сохранить поисковые позиции и результаты страниц на новом домене.
  2. При переходе с http на https и других изменений главного зеркала: чтобы склеить копии страниц.
  3. Устранение дублей: позволяет сделать так, чтобы все дубликаты ссылались на одну корректную страничку.
  4. Изменение URL-адресов на сайте: при изменении адресов страниц на сайте, 301 редирект позволяет сохранить трафик на страницах и избежать ошибок 404.
  5. Устранение битых ссылок: при обращении к несуществующей странице сайта, может перенаправлять на главную страницу сайта или наиболее подходящую страницу.
  6. Мобильная версия: перенаправление пользователей мобильных устройств на соответствующую версию сайта.
  7. ГЕО: перенаправление пользователей в зависимости от их геолокации на нужный поддомен или папку.
Читайте также:  Php assert quiet eval

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

Настраиваем 301 редирект через .htaccess

Что такое .htaccess и где его взять?

Файл под названием .htaccess находится в главной категории вашего сайта. Это дополнительный конфигурационный файл web-сервера Apache, в котором мы будем указывать правила склейки. Открываем файл блокнотом (рекомендую notepad++ или sublime, чтобы не было проблем с кодировкой). Если у вас их нет — рекомендую обзавестись, а заодно посмотрите мои инструменты для работы.

Файл .htaccess может не отображаться — включите отображение скрытых файлов. И в корне вашего сайта вы его увидите через FTP-клиент.

Как выглядит и где лежит .htaccess

Наглядно, где лежит у меня .htaccess

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

Options +FollowSymLinks RewriteEngine On #Здесь указываем правила, которые идут ниже

Все правила записываются в виде:

RewriteCond [Сравнение] [Условие] [Флаги] RewriteCond [Сравнение] [Условие] [Флаги] RewriteRule [Шаблон] [Подстановка] [Флаги]

Теперь непосредственно займемся переадресацией и разберем конкретные примеры.

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

301 редирект с index.php или index.html на главную

Чтобы настроить его вам нужно прописать в вашем файле htaccess следующий код, который будет перенаправлять посетителей с адреса site.ru/index.php на site.ru:

RewriteCond % ^[A-Z]\ /index\.php\ HTTP RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

Если вам так же нужно сделать переадресацию с index.html, то просто в коде выше замените .php на .html

Настройка 301 редирект с нескольких сайтов на один

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

RewriteCond % ^vash-sait.com$ [OR,NC] RewriteCond % ^www.vash-sait.com$ [NC] RewriteRule ^(.*)$ http://vash-sait.ru/$1 [R=301,L]

Обратите внимание на первые 2 строки, там указано зеркало в зоне .com, если у вас иная или несколько зон, то добавляем правила. Для редиректа следующего сайта просто повторите блок еще раз.

301 редирект с www на без www

Этот способ я уже описывал ранее, но повторюсь. Для того, чтобы склеить зеркала и выбрать основным домен без www прописываем:

RewriteCond % ^www.site\.ru$ [NC] RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

301 редирект с домена без www на домен с www

Это действие противоположное предыдущему, только основное зеркало здесь www.site.ru:

RewriteCond % ^site\.ru$ [NC] RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

301 редирект страниц со слэшем и без

Это еще один вид дублей, тут мы склеим страницы site.ru/category/ и site.ru/category, как видите, в конце второго урла не стоит слэша:

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

Если вам нужно наоборот оставить слэш в конце урла, то вам нужен данный вариант:

RewriteCond % !-f RewriteCond % !(.*)/$ RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]

Если у вас по какой-то причине появились урлы типа site.ru/category//article.html, то юзаем код:

RewriteCond % ^(.*)//(.*)$ RewriteRule . %1/%2 [R=301,L]

где, «//» можно заменить на «—» или любые сдвоенные символы в урле.

Массовая замена категории через 301 редирект

Бывает, что вы переименовали категорию, а за ней закреплены тысячи урлов. Чтобы не состарится во время написания тысяч одинаковых редиректов юзаем:

RewriteRule ^(.*)/old-category/(.*)$ $1/new-category/$2 [R=301,L]

Если у вас категория идет сразу после домена (типа site.ru/category/), то используем другой вариант:

RewriteRule old-category/(.*) /old-category/$1 [R=301,L]

301 редирект не целой категории, а конкретной страницы

Если требуется сделать переадресацию только для адреса http://www.site.ru/category/, но при этом чтобы страница http://www.site.ru/category/page открывалась по старому адресу:

RewriteRule ^category/$ http://www.site.ru/new-category/ [R=301,L]

301 редирект со страницы на страницу

Самый простой редирект со одной страницы на другую или постраничный, для это просто пропишите так:

Redirect 301 /old-post.html http://new-site.ru/new-post.html

или вариант через RewriteRule:

RewriteRule ^old-post.html /new-post.html [R=301,L]

Где old-post.html — это ваша старая страница, а new-site.ru/new-post.html — это новая страница и она может быть на любом домене (включая ваш текущий домен).

301 редирект для url с параметрами

Страницы с параметрами редиректятся сложнее, возьмем пример http://site.ru/page.php?sort=articles. Параметр здесь «sort=articles». Код будет следующим:

RewriteCond % sort=articles RewriteRule .* http://site.ru/page.php? [R=301,L]

Пример с битрикса и страницы http://www.site.ru/dir/index.php?IBLOCK_ID=1&SECTION_ID=123:

301-редирект со страницы без заданного параметра на главную

Перенаправит http://www.site.ru/?abc на главную страницу сайта:

RewriteCond % ^abc$ [NC] RewriteRule ^$ /? [R=301,L]

Убираем расширения через 301 редирект

Убираем .html из url (для удаления .php не забудьте заменить $1.html на $1.php):

Меняем .php на .html в урлах и наоборот (не забываем поменять местами в коде):

RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

301 редирект со всех страниц на главную другого домена

Стандартный вариант редиректа для подклейки дропов (если нужна не главная — замените URL):

RewriteCond % (.*) RewriteRule ^(.*)$ http://site.ru/ [L,R=301]

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

Был адрес seo.site.ru, но вы решили сменить этот адрес на site.ru/seo. Тогда нужно добавить такой редирект в .htaccess, который находится в корневой папке поддомена seo.site.ru:

RewriteCond % ^seo\.site\.ru$ [NC] RewriteRule ^(.*)$ https://site.ru/seo/ [R=301,L]

301 редирект с HTTP на HTTPs

RewriteCond % !=on RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

Правильный 301 редирект на новый домен

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

RewriteCond % robots.txt$ [NC] RewriteRule ^([^/]+) $1 [L] RewriteCond % ^site\.ru RewriteRule ^(.*)$ http://new-site.ru/$1 [R=301,L] RewriteCond % ^www.site\.ru RewriteRule ^(.*)$ http://new-site.ru/$1 [R=301,L]

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

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

При использовании редиректа 301 могут возникнуть следующие ошибки:

  1. Неправильный URL-адрес назначения: если вы указали неправильный URL-адрес для перенаправления, то пользователи будут перенаправлены на неверную страницу. Чтобы избежать этой ошибки, необходимо тщательно проверять URL-адрес назначения перед созданием редиректа.
  2. Циклический редирект: это происходит, когда две страницы перенаправляют друг на друга, образуя цикл. Это может привести к ошибкам и снижению ранжирования в поисковых системах. Чтобы избежать циклического редиректа, необходимо тщательно планировать свои редиректы и проверять их наличие внимательно.
  3. Несовместимость HTTP и HTTPS: если ваш сайт использует HTTPS, а редирект настроен на HTTP, пользователи могут столкнуться с ошибкой безопасности и не смогут получить доступ к вашему сайту. Чтобы избежать этой ошибки, убедитесь, что все ваши редиректы настроены на HTTPS.
  4. Неправильная настройка сервера: если сервер не настроен, редиректы могут не работать. Чтобы избежать этой ошибки, рекомендуется обратиться к специалистам, которые могут помочь с настройкой сервера.
  5. Непонимание своих действий: если вы не знаете Apache у вас или Nginx, не понимаете устройство файла .htaccess — делайте копию работающего файла. А лучше обратитесь к специалистам.

Как проверить, что редирект 301 работает правильно

Существует несколько способов проверить, что редирект 301 работает правильно:

  1. Используйте онлайн-инструменты, такие как Bertal (если нужно разово) или PixelTools (если нужно массово + доп. параметры), чтобы проверить, что редирект перенаправляет на правильный URL-адрес и не имеет ошибок (смотрите ответ сервера чтобы был именно 301 и на какой URL перенаправляет).
  2. Проверьте индексацию новой страницы в поисковых системах. Если страница индексируется и отображаться в поисковых результатах (старый URL при этом исчезает из выдачи), это может указывать на то, что редирект работает правильно.
  3. Проверьте файл журнала сервера, чтобы убедиться, что редиректы не вызывают ошибок у пользователей и ботов или проблем в работе сервера.

Популярные вопросы и ответы на них

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

Он может быть прописан в .htaccess или в конфигурационном файле hpptd.conf (скорее всего у вас не будет к нему доступа) или index.php (если речь о редиректе на PHP).

Источник

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