×
Россия +7 (909) 261-97-71

Как сделать 301 редирект в .htaccess

Россия +7 (909) 261-97-71
Шрифт:
4 18506
Подпишитесь на нас в MAX

Permanent Redirect 301 («301 редирект», «постоянный редирект» или «301 редирект страницы») представляет собой процесс перенаправления пользователя с одной страницы на другую, например, между версиями http и https, с www и без www и так далее. 

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

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

Для чего нужен 301 редирект 

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

Когда необходим редирект 

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

  • Сайт сменил домен. 

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

Переадресация должна выполняться со всех адресов старого домена на аналогичные страницы нового домена. 

  • Установка SSL-сертификата. 

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

  • Смена URL конкретной страницы. 

Такая необходимость может возникнуть в нескольких случаях – смена CMS, смена урловой структуры на сайте и т.д. 

Таким образом, необходимо отправить пользователей с site.ru/page1/ на site.ru/catalog/page1/. 

  • Перенос разделов на поддомены. 

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

  • Для того, чтобы объединить сайты, расположенные в разных доменных зонах. 

Например, вебмастер покупает домены site.com, site.ru, site.net, site.org и site.biz и на четырех последних сайтах настраивает редирект на основной – site.com. 

  • Устранение дублей страниц или копий сайта. 

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

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

  • Основным должен быть принцип «от меньшему к большему» – то есть располагайте редиректы от частных к более глобальным, например, постраничная переадресация должна быть выше, чем переадресация с без www на www. Это необходимо для того, чтобы сначала сработали частные редиректы и уже только потом (при необходимости) общие. 
  • Избегайте последовательных двойных, тройных редиректов. Желательно, чтобы все переадресации выполнялись в один шаг. 
  • Проверьте HTTP-заголовки и статусы ответа сервера, чтобы убедиться в правильности работы редиректа. При проверке имейте в виду, что многие браузеры кешируют редиректы. Проверить настройки можно с помощью сервиса Яндекс.Вебмастер или любого подобного, например, https://bertal.ru/

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

  • Готовые модули для CMS, например, в WordPress. В этом случае информация по переадресациям указывается непосредственно в админ-панели сайта. 

Например в 1C-Битрикс существует множество модулей, таких как SEO Редиректы

301 редирект

Для других CMS также можно установить модули. Вот некоторые ссылки на модули для распространенных CMS: Opencart, WordPress, Webasyst

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

Например:  

header('HTTP/1.1 301 Moved Permanently');  

header('Location: http://www.example.com/'); 

  • Если необходимо перенаправить одну единственную страницу на сайте, одним из решений может быть настройка при помощи HTML путем добавления специального тега в заголовок HTML-документа (Meta Refresh). 

Например, < meta http-equiv="refresh" content="0; url=http://site.com" > 

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

Например, window.location.href="https://site.com" 

  • Настройка 301 редиректа на nginx. Настройки необходимо вносить в файлах конфигураций виртуальных доменов. 

Например, rewrite ^https://$host$request_uri? < флаг >; 

где: 

$host – имя хоста из запроса, если отсутствует – имя в поле «Host» заголовка, если тоже отсутствует – имя сервера;  

$request_uri – первоначальный запрос с аргументами (все, что идет после доменного имени). 

< флаги > могут иметь следующие параметры: 

permanent – перенаправление с кодом 301,

redirect – перенаправить с кодом 302,

last – закончить обработку с переходом в новый location,

break – закончить обработку и остаться в текущем location. 

  • Для настройки переадресаций на сервере Apache более надежной является настройка серверных редиректов через внесение изменений в файл .htaccess. Разберем этот способ подробнее.   

Все возможные правила переадресаций для разных задач 

Мы постарались подобрать самые часто используемые правила перенаправления. Если вдруг какое-то правило перенаправления не сработает на вашем сайте, попробуйте альтернативное из нашего списка. Стоит учесть, что не все представленные правила могут работать корректно при той или иной настройке сервера либо с той или иной CMS. 

Склейка зеркал сайта (www и без www) 

Сайты http://site.ru и http://www.site.ru для поисковых систем считаются дублями, что может существенно сказаться на продвижении вашего ресурса. Для решения подобной проблемы необходимо сделать так называемую «склейку» сайта, то есть прописать 301 редирект в .htaccess. 

301 редирект с www на без www (главное зеркало – домен без www): 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ 

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

301 редирект с без www на www (главное зеркало – домен с www): 

RewriteCond %{HTTP_HOST} ^([^www].*)$ 

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

Редирект с http на https 

Для всего сайта 

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

RewriteCond %{SERVER_PORT} !^443$ 

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 

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

RewriteCond %{HTTPS} =on 

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] 

Если циклическое перенаправление на страницах осталось, попробуйте такой вариант: 

RewriteCond %{HTTPS} off 

RewriteCond %{HTTP:X-Forwarded-Proto} !https 

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Если редирект не работает и в этом случае, попробуйте такой вариант: 

RewriteEngine On 

RewriteCond %{SERVER_PORT} !^443$ 

RewriteCond %{REQUEST_URI} =/page.php 

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

Постранично 

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

RewriteEngine On 

RewriteCond %{HTTPS} =off 

RewriteCond %{REQUEST_URI} !^/page.php 

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] 

Для одной страницы 

Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующее: 

RewriteEngine On 

RewriteCond %{HTTPS} =off 

RewriteCond %{REQUEST_URI} =/page.php 

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] 

Редирект с https на http 

Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее: 

RewriteCond %{SERVER_PORT} ^443$ [OR] 

RewriteCond %{HTTP} =on 

RewriteRule ^(.*)$ https://name.site/$1 [R=301,L] 

Редирект с двух последовательных слешей на один 

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

RewriteCond %{THE_REQUEST} // 

RewriteRule .* /$0 [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] 

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

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} !\/$ 

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

Один 301 редирект (а не два последовательных!) на без www и со слешем на конце адреса страницы 

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} !\/$ 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} ![^\/]$ 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} !\/$ 

RewriteCond %{HTTP_HOST} ^([^www].*)$ 

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

Один 301 редирект (а не два последовательных!) на c www и со слешем на конце адреса страницы 

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} !\/$ 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} !\/$ 

RewriteCond %{HTTP_HOST} ^([^www].*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} ![^\/]$ 

RewriteCond %{HTTP_HOST} ^([^www].*)$ 

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

Один 301 редирект (а не два последовательных!) на c www и без слеша на конце адреса страницы 

RewriteCond %{REQUEST_URI} ^\/$ 

RewriteCond %{HTTP_HOST} ^([^www].*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} \/$ 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} !\/$ 

RewriteCond %{HTTP_HOST} ^([^www].*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} \/$

RewriteCond %{HTTP_HOST} ^([^www].*)$ 

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

Один 301 редирект (а не два последовательных!) на без www и без слеша на конце адреса страницы 

RewriteCond %{REQUEST_URI} ^\/$ 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} \/$ 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} !\/$ 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ 

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

RewriteCond %{REQUEST_URI} !\? 

RewriteCond %{REQUEST_URI} !\& 

RewriteCond %{REQUEST_URI} !\= 

RewriteCond %{REQUEST_URI} !\. 

RewriteCond %{REQUEST_URI} \/$ 

RewriteCond %{HTTP_HOST} ^([^www].*)$ 

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

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

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

RewriteCond %{HTTP_HOST} ^www\.old_name\.ru$ [NC] 

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

RewriteCond %{HTTP_HOST} ^old_name\.ru$ [NC] 

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

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

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

RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L] 

Редирект для URL (с параметрами) 

В случае, когда адрес содержит параметр (например, http://site.ru/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию: 

RewriteCond %{QUERY_STRING} section=1 

RewriteRule ^index.php http://name.site/articles.php? [R=301,L] 

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

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 

RewriteRule ^index\.php$ http://name.site/ [R=301,L] 

301 редирект с 404 Not Found 

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

Нижеприведенный код перенаправит со всех 404 страниц на главную сайта: 

ErrorDocument 404 http://www.site.com/301.html 

Однако делать такие редиректы для абсолютно всех страниц со статусом 404 не рекомендуется. 

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

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

Options -Indexes 

ErrorDocument 404 /404.php 

php_flag register_globals off 

php_value pcre.recursion_limit 1000 

#Условия 301 редиректа 

< IfModule mod_rewrite.c > 

RewriteEngine On 

# склейка зеркал 

RewriteCond %{HTTP_HOST} ^my_site\.ru 

RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^www.my_site\.ru 

RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^www.my_site.ru$ [NC] 

RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]

# без слеша 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteCond %{REQUEST_URI} ^(.+)/$ 

RewriteRule ^(.+)/$ /$1 [R=301,L] 

< /IfModule > 

php_value default_charset utf-8 

AddType 'text/html; charset=utf-8' .html .htm .shtml 

С несуществующего файла 

В этом случае можно будет применить: 

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^(www.)?domain.ru$ 

RewriteCond %{REQUEST_URI} ^/robots.txt$ 

RewriteRule ^(.*)$ /poddomen/script.php [R=301,L] 

Также подойдет второй способ: 

Options +FollowSymLinks 

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^poddomen\.domain\.ru$ [NC] 

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L] 

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

В этом случае возможно перебрасывать пользователей с poddomen.domain.ru на подкаталог poddomen. 

Способ 1: 

RewriteEngine on 

RewriteBase / 

RewriteCond %{REQUEST_URI} !^/poddomen 

RewriteCond %{HTTP_HOST} ^poddomen.domain.ru$ [NC] 

RewriteRule ^index.php(.*)$ /poddomen/$1 [L,QSA]   

Способ 2: 

RewriteEngine on 

RewriteBase / 

RewriteCond %{HTTP_HOST} ^poddomen.domain.ru$ 

RewriteCond %{REQUEST_URI} !/poddomen/ 

RewriteRule ^(.*)$ /poddomen/$1 [L] 

В случае, когда речь идет о www.poddomen.domain.ru необходимо применить: 

RewriteEngine on 

RewriteBase / 

RewriteCond %{HTTP_HOST} ^(www\.)?poddomen\.domain\.ru$ 

RewriteCond %{REQUEST_URI} !/poddomen/ 

RewriteRule ^(.*)$ /poddomen/$1 [L] 

С поддомена на основной домен 

Если требуется выполнить условие для всех поддоменов без исключения: 

RewriteEngine On 

RewriteBase / 

RewriteCond %{HTTP_HOST} ^(.+).domain.ru$ 

RewriteRule (.*) http://site.ru/$1?region=%1 [L,R=301,QSA] 

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

RewriteEngine On 

RewriteBase / 

RewriteCond %{HTTP_HOST} ^poddomen.domain.ru$ [NC] 

RewriteRule (.*) http://site.ru/$1?region=poddomen [L,R=301,QSA] 

301 редирект для конкретного файла, а не целой папки 

Если требуется настроить переадресацию только для адреса http://www.site.ru/dir/, но при этом чтобы страница http://www.site.ru/dir/index.php?IBLOCK_ID=1 открывалась по старому адресу, необходимо использовать специальный символ $ в правиле. 

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

Как быть с доменами в зоне РФ? 

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

В частности, сама зона .рф преобразуется в .xn--p1ai

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

RewriteCond %{HTTP_HOST} ^si-te\.ru$ [NC] 

RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L] 

Редирект со всех файлов домена, кроме папки администратора bitrix 

RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301] 

RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301] 

Редирект всех файлов в папке на заданный файл 

RewriteRule ^dir(.*)$ /new-file.php [L,R=301] 

Редирект файлов из заданной папки кроме определенного файла 

RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301] 

RewriteRule ^dir(.*)$ /all.php [L,R=301] 

Смена страниц с html расширения на php расширение 

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

Перенос картинок / изображений из папки /img/ на поддомен 

RewriteRule ^img/(.+)\.jpg$ http://img.domain.ru/$1.jpg [R=301,L] 

Задание типа индексной страницы (php, html, htm и другие) 

Указывается порядок загрузки типов индексного файла, лежащих в корне каталога. 

DirectoryIndex index.html index.php index.htm index.shtml 

Редирект с индексной страницы php на саму папку (корень) 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 

RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L] 

Для всех индексных страниц на сайте: 

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

Редирект с поддомена на основной домен второго уровня 

RewriteCond %{HTTP_HOST} ^test.site.ru$ [NC] 

RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} [R=301,NC,L,QSA] 

Редирект для заданного файла в различных директориях (папках) 

RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L] 

Если требуется создать ЧПУ-копию какой-либо динамической страницы 

RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L] 

Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/. 

Настройка 403 кода ответа сервера для реф-спама (301 редирект для спама по REFERER) для списка ресурсов

RewriteCond %{HTTP_REFERER} ref-spam-site.ru [NC,OR] 

RewriteCond %{HTTP_REFERER} another-ref-spam.ru [NC] 

RewriteRule .* - [F] 

Настройка позволяет отклонить спамный реферальный трафик с ряда ресурсов по заголовку HTTP_REFERER. 

Настройка редиректа только для некоторых USER_AGENT'ов, а не для всех пользователей 

RewriteCond %{HTTP_USER_AGENT}

(iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone) [NC] 

RewriteRule (.*) http://mobile.site.ru/ [L,R=301] 

Если требуется настроить редирект для всех поисковых роботов (представлен список их USER_AGENT'ов) 

RewriteCond %{HTTP_USER_AGENT} !(accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer) [NC]

RewriteRule (.*) http://no-search.site.ru/ [L,R=301]

В каких случаях не нужно использовать редирект 

  • Вы временно, а не постоянно переезжаете на новую страницу: для этого есть 302 код, что позволит избежать «склейки» изначальной и новой страниц, а также позволит сохранить позиции в выдаче. 
  • Если переезд на новый домен является решением таких проблем, как баны, фильтры и т.д., 301 редирект повлечет за собой перенос и всех этих проблем на новый сайт.

Есть о чем рассказать? Тогда присылайте свои материалы Марине Ибушевой


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • Дмитрий Лашманов
    16
    комментариев
    0
    читателей
    Дмитрий Лашманов
    больше года назад
    Хорошая статья, все подробно. В своем блоге тоже писал статью на эту тему, добавил еще табличку с синтаксисом, может быть пригодится кому-то - seo-notes.ru/kak-nastroit-301-redirekt.
    -
    0
    +
    Ответить
  • Гость
    2
    комментария
    0
    читателей
    Гость
    больше года назад
    asd
    -
    0
    +
    Ответить
  • Гость
    2
    комментария
    0
    читателей
    Гость
    больше года назад
    firewall-cmd --zone=public --add-service=http
    firewall-cmd --zone=public --add-service=https
    firewall-cmd --zone=public --add-service=http --permanent
    firewall-cmd --zone=public --add-service=https --permanent

    firewall-cmd --list-all

    systemctl status nginx.service
    systemctl enable --now nginx.service

    cd /usr/share/nginx/html/

    ls
    mv /usr/share/nginx/html/index.html /usr/share/nginx/html/index1.html

    <...
    firewall-cmd --zone=public --add-service=http
    firewall-cmd --zone=public --add-service=https
    firewall-cmd --zone=public --add-service=http --permanent
    firewall-cmd --zone=public --add-service=https --permanent

    firewall-cmd --list-all

    systemctl status nginx.service
    systemctl enable --now nginx.service

    cd /usr/share/nginx/html/

    ls
    mv /usr/share/nginx/html/index.html /usr/share/nginx/html/index1.html


    Для шлюза:
    setsebool -P httpd _can_network_connect 1
    getsebool httpd _can_network_connect (проверить)

    Заходим в /etc/nginx/nginx.conf

    Находим строку, которая начинается с http и дописываем туда:

    upstream backend {
    least_conn;
    server (ip адреса сервера);
    server (ip адреса сервера);
    }

    Затем находим строку location / и пишем:
    proxy_pass backend/;

    Перезапускаем службу.


    Создаем сертификат:

    openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 -out name.key
    openssl req -new -key name.key -out name.key
    Common Name name.key
    openssl x509 -req -days 365 -in name.csr -signkey app.wsr -out name.crt

    /etc/pki/tls/ (путь, где хранится сертификат)

    cp name.key /etc/pki/tls/private/
    cp name.crt /etc/pki/tls/certs/

    Зайти в /etc/nginx/nginx.conf
    Добавить:
    listen 443 ssl http2 default_server;
    server_name name.key www.name.key;
    if ($scheme) {
    return 301 $host$request_uri;
    }
    ssl_certificate "/etc/pki/tls/certs/name.crt";
    ssl_certificate_key "/etc/pki/tls/private/name.key";
    -
    0
    +
    Ответить
  • Гость
    1
    комментарий
    0
    читателей
    Гость
    больше года назад
    Очень полезная статья!
    -
    1
    +
    Ответить
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Мы сократили рутину SEO-специалиста на 95% – вот архитектура, которая это сделала
Гостьkorayaskin
2
комментария
0
читателей
Полный профиль
Гостьkorayaskin - Можно также посмотреть разбор инструментов типа KeywordKick — помогает быстрее понять, где именно конфликт сигналов.
Как ChatGPT выбирает компании для рекомендаций: что уже известно и как бизнесу подготовиться к эпохе AI Search
Сергей Семенов
1
комментарий
0
читателей
Полный профиль
Сергей Семенов - Спасибо за вопрос. Нет, полностью автоматически отчёт не генерируется. Мы сознательно не пошли по пути «нажал кнопку — получил PDF». В RECOMO мы используем ИИ как инструмент анализа, а не как замену методологии. Наш процесс состоит из нескольких этапов: Проводится серия проверок в различных AI-системах (ChatGPT, Gemini, Claude и других) по заранее сформированной методике и набору запросов. Собираются данные о том, какие компании рекомендуются, в каком контексте, какие источники используются и какие цифровые сигналы присутствуют. Далее ИИ помогает структурировать и анализировать большой объём информации, выявлять закономерности и формировать черновики выводов. После этого отчёт обязательно проходит экспертную проверку нашей командой. Мы дополняем его интерпретацией результатов, практическими рекомендациями и проверяем, чтобы выводы действительно соответствовали данным. Пока рынок AI Search только формируется, полностью доверять генерацию подобных аудитов одной языковой модели было бы неправильно. Именно поэтому мы сочетаем собственную методологию, автоматизированный сбор и анализ данных и экспертную валидацию результатов. Наша цель — не просто красиво оформить отчёт, а дать бизнесу рекомендации, которые действительно помогут повысить AI Visibility и увеличить вероятность появления бренда в рекомендациях современных AI-систем.
Накрутка ПФ vs Бизнес: как накрутка поведенческих факторов «убьет» ваш бизнес в интернете
Гость
1
комментарий
0
читателей
Полный профиль
Гость - Вообще бред несут-пункт позиции и там и там суотрудничать,банов нет,риски и остальные пункты просто смешно,пф гораздо эффективнее чем платить в пиксель)))
Сервисы для создания квизов: сравнение по конверсии, гибкости сценариев и интеграциям
Виктор
1
комментарий
0
читателей
Полный профиль
Виктор - Без сервиса FormDesigner.ru эта подборка будет не полной. Удивлен, почему вы его не включили в список?
5 полезных сервисов для работы с учебными текстами
Anna B.
2
комментария
0
читателей
Полный профиль
Anna B. - Отличный разбор, очень своевременно!
Сайт компании в 2026 году: что проверяет Роскомнадзор и как не получить штраф
Олег Черников
1
комментарий
0
читателей
Полный профиль
Олег Черников - Дима спасибо, отличный обзор! За ГОСТ Р 52872-2019 спасибо! Давно около него ходил.
Yandex Cloud сменил логотип и визуальный стиль
Гостьфы
1
комментарий
0
читателей
Полный профиль
Гостьфы - это че такое
Рейтинг GEO-агентств для ecom в России: как продвигать интернет-магазин в нейросетях
Игорь
6
комментариев
0
читателей
Полный профиль
Игорь - Как раз сейчас пытаемся продвинуть свой интернет-магазин спортивных товаров для нейросетей, чтоб почаще нас упоминали. Работаем с Zenlink. Привлекло то, что у них есть реальные кейсы и к работе адекватно подходят. Сначала заказали просто анализ, чтоб они проверили, как нас вообще нейросети упоминают. Интересовала Алиса, ЧатГпт, и ДипСик. Там конечно все довольно печально было... Упоминаний мало. Но после того как мы свой сайт оптимизировали по их советам и они выполнили аутрич, плюс GERM, упоминаться стали чаще. В Алисе и ГПТ особенно, в ДипСик поменьше рост, но тоже есть. Это воодушевляет, конечно. И даже было пару клиентов, которые нас именно через нейросеть нашли. Сейчас опрос проводим, чтоб реальную пользу для себя понять. И вот, она уже есть. На мой взгляд эта услуга подходит тем бизнесам у кого большой средний чек, тогда даже пару клиентов с лихвой отбивают затраты на такое продвижение.
Яндекс добавил продвинутую ИИ-модель в Алису на всех умных устройствах
Тимофей
1
комментарий
0
читателей
Полный профиль
Тимофей - Какой смысл усовершенствовать если в нашей стране запрещено говорить правду!
Рынок безалкогольных напитков в 2026 году: как категория продает через доверие к бренду
Алексей
1
комментарий
0
читателей
Полный профиль
Алексей - Все бы хорошо, но это в прошлом. В 2026 г. о росте 2020-2025 гг. остается только мечтать. Рынок БАН перешел к снижению. К серьезному снижению.
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
393
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
142
Комментариев
130
Комментариев
121
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
66
Комментариев
60
Комментариев
59

Отправьте отзыв!
Отправьте отзыв!