htaccess редирект на нижний регистр

В данной статье рассмотрим простые шаги по установке редиректа (переадресации) с одной страницы сайта на другую (одного URL на другой).

htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

В данной статье рассмотрим простые шаги по установке редиректа (переадресации) с одной страницы сайта на другую (одного URL на другой).

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

Как ее выполнять? С помощью какого ПО? Чего необходимо избежать в ходе процесса?

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

Мы рассмотрим следующие моменты:

Место, где прописываем редиректы

Заходить на хостинг будем с помощью бесплатной программы FileZilla.

htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

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

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

htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

Именно он нам и нужен.

Перетяните его в левое окно:

htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

Теперь он скопировался на ваш ПК. Запомните директорию, в которой он лежит.

О мерах предосторожности

htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

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

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

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

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

    В блоке №1 стандартные директивы WordPress. IfModule mod_rewrite.c проверяет установку соответствующего модуля на сервере. Если да, то выполняются команды до

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

    Из 3-го пункта необходимо вынести два правила:

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

    Как прописать редирект

    В предыдущей главе мы частично затронули процедуру установки редиректа с внутренних страниц сайта.

    Почему с внутренних?

    Итак, вернемся к процессу.

    Например, у вас есть сайт по адресу https://www.site.com

    Вам необходимо сделать перенаправление внутренней страницы сайта https://www.site.com/blog/ на страницу https://www.site.com/news/.

    Redirect 301 /blog/ https://www.site.com/news/

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

    Страницу с которой осуществляем перенаправление (редирект) не надо прописывать с доменным именем (в нашем случае домен https://www.site.com), а вот страницу, на которую перенаправляем надо.

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

    Редирект следующих страниц прописывайте с новой строки.

    Не забывайте про пробелы. Часто по их вине возникают ошибки, из-за которых редирект не работает. Всего должно быть 3 пробела.

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

    Далее, сохраняйте файл и переносите его на хостинг, перезаписав старый.

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

    Другие редиректы

    Вторая половина статьи будет интересна более продвинутым пользователям. В ней рассмотрим иные способы редиректа страниц, переход с www версии на версию без www, с http:// на https:// и другие.

    Операторы регулярных выражений

    Спецсимволы:

    Модификаторы:

    Больше подробностей об этих значениях читайте здесь.

    Рассмотрим действие символов и модификаторов

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

    RewriteEngine On
    % ^www.site.com$ [NC]
    RewriteRule (.*) http://site.com/$1 [R=301,L]

    С помощью RewriteEngine On мы включаем модуль mod_rewrite а

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

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

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

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

    Если ваш сайт перешел с html на php

    Удаление или добавление слеша (/) в конце

    Редирект каталога

    Прописывать редиректы по одному – это утомительно. Если на вашем ресурсе поменялся каталог какого-нибудь раздела(ов), то можно сэкономить время и сделать редирект всех ссылок, относящихся к этому каталогу. Для этого понадобится прописать всего одну строку:

    Если каталог находится сразу после домена (site.com/old-catalog/), то строка выглядит еще проще:

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

    Редирект с поддоменов (субдоменов) на основной

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

    Удаление нескольких слешей и тире

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

    Редирект на нижний регистр

    Сейчас нередки сайты, где изначально в доменном имени присутствуют заглавные буквы. Например, SiTe.com. В таком виде они могут показываться в поиске. Однако, большинство сайтов по-прежнему используют буквы в нижнем регистре для доменного имени.

    Таким сайтам можно сделать редирект на нижний регистр:

    Переезд на новый домен

    В файле robots.txt на старом сайте:

    User-agent: Yandex
    Disallow:
    Host: newsite.com

    Перевод сайта с http:// версии на https://

    Сейчас все больше сайтов устанавливают ssl сертификаты, переходя с http:// на https://. Последние не создают проблем при отображении сайта в браузере и дают некоторую степень защиты информации посетителя на вашем ресурсе. Для перехода можно использовать следующие директивы:

    Если это правило не подойдет, то обратитесь в вашу хостинг-компанию.

    Источник

    linux-notes.org

    htaccess редирект на нижний регистр. Смотреть фото htaccess редирект на нижний регистр. Смотреть картинку htaccess редирект на нижний регистр. Картинка про htaccess редирект на нижний регистр. Фото htaccess редирект на нижний регистр

    Недавно, столкнулся с проблемой, нужно было сделать реврайт для замены прописных букв в строчные. Решил написать статью «Rewrite правила для замены прописных букв в строчные», возможно кому-то еще будет полезным.

    Rewrite правила для замены прописных букв в строчные для apache

    Использование RewriteMap в самом httpd.conf.

    Вот еще один способ:

    Приведу еще один способ для того чтобы вы смогли выбрать 1 на свой вкус. Прежде всего, необходимо добавить эту строку в httpd.conf, чтобы определить RewriteMap:

    Использование mod_speling в httpd.conf.

    Вы можете проверить что позволяет делать mod_speling модуль в апаче. Я лично не использую его, но многие люди любят его. По этому, приведу пример и с ним:

    Решаем проблему с WP:

    Использование perl.

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

    Есть еще несколько способов сделать подобное, но я решил привести наиболее распространенные.

    Rewrite правила для замены прописных букв в строчные для nginx

    Создаем в конфиге локейшен:

    Но на мой взгляд, более правильный вариант:

    PS: Нужно перед этим инициализировать переменную uri_lowercase

    Или если нужно сделать это с исключениями:

    С использованием perl.

    Как я описывал для apache, можно сделать подобное и для nginx:

    С использованием lua.

    Вот и все. Надеюсь было все понятно. Я завершаю свою тему «Rewrite правила для замены прописных букв в строчные».

    Источник

    На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.

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

    Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.

    1. Перенаправление доменов c синонима сайта на основной домен с кодом 301

    Перенаправить запросы на domain.ru с любого из синонимов сайта

    RewriteEngine On
    RewriteCond % !^domain\.ru$ [NC]
    RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]

    Перенаправить запросы на www.domain.ru с любого из синонимов сайта

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

    Эти правила рекомендуется размещать в самом начале файла .htaccess.

    2. Постоянное перенаправление с кодом 301

    Redirect 301 /page.html http://www.domain.ru/new_page.html

    Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond % ^test=123$ [NC]
    RewriteRule ^period/$ http://domain.ru/ [L,R=301]

    3. Переопределение страниц ошибок

    #401 Авторизация не выполнена
    ErrorDocument 401 http://domain.ru/errors/401.html
    #403 Доступ запрещен
    ErrorDocument 403 http://domain.ru/errors/403.html
    #404 Страница не найдена
    ErrorDocument 404 http://domain.ru/errors/404.html
    #500 Внутренняя ошибка сервера
    ErrorDocument 500 http://domain.ru/errors/500.html

    Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге

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

    User-agent: *
    Disallow: /errors

    /ваш_домен/docs/errors/.htaccess, в котором прописать

    4. Постраничное перенаправление запросов на другой домен c кодом 301

    Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:

    Redirect 301 / http://www.newdomain.ru/

    RewriteEngine On
    RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]

    5. Ограничение доступа к сайту по IP

    Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3

    Order Allow,Deny
    Allow from all
    Deny from 123.4.5.6 123.5.4.3

    Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:

    Order Deny,Allow
    Deny from all
    Allow from 123.4.5.6 123.5.4.3

    Запретить доступ к сайту для всех:

    6. Переопределение главной страницы сайта (индексного файла каталога)

    Сделать главной страницей файл menu.html:

    8. Запрет выдачи листинга каталога

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

    Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).

    10. Блокировка переходов со сторонних ресурсов

    Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:

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

    В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.

    Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:

    RewriteEngine on
    RewriteCond % ^www\.site.ru [NC]
    RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]

    В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.

    12. Перенаправление с HTTP на HTTPS и обратно

    Для работы перенаправления на сайте должен быть установлен действительный SSL-сертификат.

    Перенаправить запросы на https://domain.ru

    Перенаправить запросы на http://domain.ru

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

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

    Источник

    Редирект используют, чтобы перенаправить посетителей с одной страницы на другую. Ситуаций, когда это может понадобиться, очень много. Например, нужно перенести сайт на другой домен, настроить переадресацию с HTTP на HTTPS или отправить человека на новый вариант страницы.

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

    Что внутри

    Какие бывают редиректы

    Есть два основных вида редиректа: 301 Moved Permanently и 302 Moved Temporarily или 302 Found. Вообще, их больше, но в жизни вам понадобятся только эти.

    Для людей разницы между видами редиректа нет, результат будет один и тот же. Но для поисковиков Moved Permanently и Moved Temporarily — разные вещи. В зависимости от того, какой редирект вы используете — 301 или 302 — поисковики по-разному воспримут цель перенаправления. В итоге ссылочный вес страницы, для которой настроили редирект, либо сохранится, либо перейдёт новой странице.

    О других редиректах читайте в статье: Коды состояния HTTP.

    301 редирект: для постоянного перенаправления

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

    Редирект 301 используют, когда нужно:

    302 редирект: для временного перенаправления

    Код 302 Moved Temporarily в HTTP 1.0 или 302 Found в HTTP 1.1 означает, что старая страница ещё понадобится, но посетителям нужно временно показывать другую. Для ботов поисковых систем такой редирект будет сигналом продолжить индексировать старую страницу и оставить её в результатах поиска. При этом ссылочный вес старой страницы сохранится.

    Редирект 302 используют, когда нужно:

    302 редирект + время = 301 редирект

    По словам главного аналитика Google, если долго не убирать 302 редирект, он начнёт передавать ссылочный вес, как это делает 301 редирект. Google решит, что временный редирект настроили случайно и станет воспринимать его как постоянный.

    Способы настройки редиректа

    Есть четыре способа настроить редирект: в файле с настройками веб-сервера, в файле с настройками PHP, при помощи HTML или JavaScript. Каждый способ подходит для разных целей. Разберём на примерах.

    В файле с настройками веб-сервера

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

    В файле с настройками PHP

    Такой способ настройки обычно используют, когда перед редиректом нужно проверить что-то в базе данных. Например, для редиректа на страницу с ошибкой 404 в дизайне вашего сайта. Человек вводит ссылку с опечаткой, PHP видит, что в базе данных страницы с таким URL нет, после чего перенаправляет человека на страницу ошибки.

    Смысла настраивать 301 редирект с HTTP на HTTPS в настройках PHP нет, поскольку работать такой редирект будет медленнее. Это связано с тем, что запрос на открытие страницы сначала обрабатывает веб-сервер, а только потом PHP.

    При помощи HTML

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

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

    При помощи JavaScript

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

    Google не любит HTML и JavaScript редиректы

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

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

    Примеры редиректов

    Перед тем как использовать правила из этого раздела, учтите несколько нюансов:

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

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

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

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

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

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

    Если нужно сделать перенаправление с поддомена на домен, добавьте косую черту перед точкой, которая идёт после поддомена. Например, для редиректа с blog.domen.com на domen.com правило будет таким:

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

    Такой редирект может понадобиться, если вы решили перенести раздел с поддомена в подпапку. Например, сначала у вас был блог по адресу blog.domen.com, а теперь нужно перенести его на domen.com/blog. Тогда правило для редиректа будет таким:

    Другой пример — консолидация двух доменов. Например, у вас есть магазин одежды odezhda.com, вы купили магазин обуви obuv.com и решили перенести его в папку на основном сайте — odezhda.com/obuv. В этом случае правило будет таким:

    Если ситуация обратная и вам нужно настроить редирект с подпапки на домен, правило будет таким:

    Где ^obuv$ — название подпапки.

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

    Когда вы только установили SSL-сертификат, попасть на защищенную версию сайта получится, только если специально дописать перед доменом https:// в адресной строке. Если просто ввести в браузере домен, сайт откроется по протоколу HTTP.

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

    Обычно на одну и ту же страницу на сайте можно зайти по двум адресам: с www и без. Для поисковых систем это будут две разные страницы с одинаковым содержимым.

    Чтобы не плодить дубликаты и не снижать уникальность контента, лучше выбрать какой-то один вариант написания ссылок и настроить на него 301 редирект со всех других вариантов.

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

    Это можно проверить двумя способами:

    Если вам наоборот нужно настроить редирект с без WWW на WWW, используйте такое правило:

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

    Так же как в примере с WWW и без WWW, на одну и ту же страницу обычно можно зайти по ссылке с косой чертой в конце и без неё. Для поисковых систем такие страницы тоже будут дубликатами.

    Чтобы случайно не нарваться на санкции от поисковиков, будет правильно привести всё к одному варианту. Вот правило, которое добавит редирект 301 для ссылок без слеша на ссылки со слешем:

    301 редирект на URL без расширения

    Допустим, у вас есть страница https://domen.com/about.html, и вы бы хотели, чтобы в адресной строке отображалось только https://domen.com/about. В таком случае добавьте такое правило:

    301 редирект с верхнего регистра на нижний

    Как и в предыдущих примерах, для поисковых ботов ссылки с разным регистром — https://domen.com/home и https://domen.com/Home — это две разные страницы.

    Обычно никто не создаёт такие дубликаты, но некоторые движки делают это автоматически. В этом случае лучше выбрать какой-то главный вариант и настроить на него редирект с остальных.

    Затем создайте в этой же папке файл rewrite-strtolower.php и добавьте в него строки:

    301 редирект для нового формата перманентных ссылок на сайте с WordPress

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

    Когда лучше не использовать редиректы

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

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

    Другой пример — товар находится сразу в нескольких категориях и URL-адрес меняется в зависимости от того, из какой категории человек на него переходит. Например, есть товар — кроссовки для бега Adidas Runfalcon. Их можно найти в категории «Кроссовки», а также подкатегориях «Кроссовки Adidas» и «Кроссовки для бега».

    Некоторые CMS в такой ситуации генерируют три страницы с разными адресами:

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

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

    Бывает, нужно сделать так, чтобы сайт всегда открывался с WWW и по HTTPS. В этом случае настраивать два правила для редиректа — плохая идея. Это называется «цепочка редиректов». Когда сайт сначала перенаправляется с http://example.com на https://example.com, а потом с https://example.com на https://www.example.com.

    Каждый новый редирект — это дополнительная нагрузка на веб-сервер. В итоге страница загружается медленнее. Вместо этого лучше объединить два редиректа в одном правиле. Конкретно для нашего примера оно будет таким:

    Чтобы найти у себя на сайте цепочку редиректов, проверьте его при помощи сервиса httpstatus.

    Этот раздел для тех, кто хочет попробовать понять содержимое правила или проверить его на ошибки, когда редирект не работает. Вот так выглядит синтаксис правила:

    RewriteEngine On
    RewriteBase /
    RewriteCond % <Переменная>Условие Флаг
    RewriteRule Шаблон Значение Флаг

    RewriteEngine — команда, которая включает компонент веб-сервера Apache, который отвечает за редиректы. Её достаточно указать один раз перед всеми командами.

    RewriteCond — команда, которая определяет условия выполнения редиректа. Например, вы хотите перенаправить все URL в верхнем регистре на URL в нижнем регистре. Тогда условие будет таким: «В запросе есть URL с буквами в верхнем регистре». Если да, происходит редирект. Если нет, веб-сервер пропускает это правило. Причём в одном правиле таких условий может быть неограниченное количество.

    RewriteRule — действие, которое веб-сервер должен выполнить при удовлетворении условий в строках RewriteCond.

    Переменные

    Помогают веб-серверу определить, что конкретно нужно проверить в строке с условием выполнения редиректа. Например, адрес сайта ввели с HTTP или с HTTPS. Или совпадает ли адрес сайта с тем, что указан в условии. Или сделать что-то с частью URL, которая идёт в запросе посетителя после домена.

    Переменные всегда пишут в фигурных скобках и ставят перед ними знак процента. Вот самые популярные из них:

    % — проверить адрес, который человек ввёл в браузере. Например, в правиле, которое перенаправляет человека на версию домена с WWW, будет эта переменная с условием ^domen.com$. Это значит «выполнить редирект, если человек ввёл в браузере domen.com». А если человек введёт www.domen.com, редирект не сработает.

    % — проверить, отправлен ли запрос по HTTPS протоколу. Например, в правиле, которое перенаправляет человека на версию сайта с HTTPS, будет эта переменная и условие !=on. Оно означает «Если адрес сайта ввели без HTTPS».

    % — путь к файлу или скрипту из запроса. Например, в правиле, которое добавляет слэш в конце URL, нужно убедиться, что по адресу из запроса клиента не находится важный файл. И в зависимости от ответа добавить слэш или пропустить запрос.

    % — всё, что идёт в запросе пользователя после доменного имени. Например, в запросе https://domen.com/account/dashboard переменная обозначает текст /account/dashboard. Эту переменную используют, когда нужно, чтобы после срабатывания правила человек попал на ту же страницу или файл, на который хотел попасть изначально.

    % — строка GET-параметров. Это параметры, которые идут в URL после знака ?. Например, вы ищете на сайте магазина обуви кроссовки бренда Adidas. В результате, URL с результатами поиска может выглядеть так: https://obuv.com/results/?krossovki=adidas. GET-параметры в этом случае это как раз кусочек ?krossovki=adidas.

    Условия

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

    Например, вы хотите настроить редирект домена с WWW на без WWW. Тогда условием будет имя со специальными символами: ^www.domen.com$. Оно означает, что редирект должен выполняться, только когда кто-то вводит домен с WWW.

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

    -f — проверяет, ведёт ли запрос пользователя к реальному файлу на сервере.

    Например, вы хотите сделать так, чтобы в конце URL всегда добавлялся слэш. В этом случае нужно исключить сценарии, когда в запросе человека — путь к конкретному файлу, например, domen.com/index.php. Иначе к index.php тоже добавится слэш и тогда страница не откроется, потому что это будет уже не ссылка на файл.

    Чтобы таких ситуаций избежать, к переменной % добавляют условие !-f. Тогда сервер будет пропускать запросы, которые ведут к реальным файлам.

    -d — проверяет, ведёт ли запрос пользователя к реальной папке на сервере.

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

    Символы

    2 — любая цифра от 0 до 9.

    [A-Z] — любая буква от A до Z в верхнем регистре.

    [a-z] — любая буква от A до Z в нижнем регистре.

    [a-Z] — любая буква от A до Z в любом регистре.

    [A-Z] <3,6>— любая строка, которая заканчивается на последовательность от 3 до 6 букв в верхнем регистре и диапазоне от A до Z.

    2 <3,6>— любая строка, которая заканчивается на последовательность от 3 до 6 цифр в диапазоне от 0 до 9.

    . — любой символ, кроме символа конца строки.

    ? — повтор предыдущего символа 0 или 1 раз.

    + — повтор предыдущего символа от 1 до 65536 разов.

    * — повтор предыдущего символа от 0 до 65536 разов. Например, выражению dome*n будут соответствовать значения domen, domeen, domeeeeeeeeen.

    \ — экранирующий слэш. Следующий символ после него будет считаться обычным, а не спецсимволом. Иногда без такого слэша правило не будет работать. Например, когда в тексте есть точка, потому что сама по себе точка означает «любой символ».

    ^(.*)$ — сочетание спецсимволов, которое выбирает URL из условия RewriteCond, чтобы применить к нему действие из RewriteRule.

    Флаги

    Это дополнительные опции. Всегда перечисляются в квадратных скобках. Если флагов в одной строке несколько, их перечисляют через запятую, например, [L, R=301]. Вот небольшой список популярных флагов:

    [R=301] — редирект вместе с его кодом. Если специально не прописать число, оставить только букву R, сработает 302 редирект. Так что для постоянного редиректа прописывайте вручную код 301.

    [L] — останавливает процесс преобразования, и текущая ссылка считается окончательной. Обычно этот флаг используют в конце каждой команды.

    [NC] — отключает проверку регистра символов при срабатывании правила.

    [OR] — указывает на альтернативное условие. Если в правиле две строки RewriteCond, они суммируются. То есть редирект произойдёт только при удовлетворении условий в обеих строках. Если строки с условиями взаимоисключающие, используйте этот флаг. Тогда правило сработает при выполнении хотя бы одного из условий.

    Источник

    Добавить комментарий

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