×
Россия +7 (495) 139-20-33

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

Россия +7 (495) 139-20-33
Шрифт:
4 11332
Подпишитесь на нас в Telegram

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 редирект повлечет за собой перенос и всех этих проблем на новый сайт.
Друзья, теперь вы можете поддержать SEOnews https://pay.cloudtips.ru/p/8828f772
Ваши донаты помогут нам развивать издание и дальше радовать вас полезным контентом.

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


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • Дмитрий Лашманов
    16
    комментариев
    0
    читателей
    Дмитрий Лашманов
    6 месяцев назад
    Хорошая статья, все подробно. В своем блоге тоже писал статью на эту тему, добавил еще табличку с синтаксисом, может быть пригодится кому-то - 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
Альманах фатальных ошибок b2b-сайта: как владельцы бизнеса обрекают сайты на бесславное существование. Часть первая
Сергей Ерофеев
3
комментария
0
читателей
Полный профиль
Сергей Ерофеев - Спасибо за комментарий! Вы правы, если за CMS следит заинтересованный профессионал - риски минимальны. Но мы же с вами понимаем, что: а) Не каждый разработчик делает все, как "для себя". б) После создания сайта разработчик редко остается на проекте в) Часто разработчик не является маркетологом. В этом случае принцип "функционал работает и этого достаточно" может быть на первом месте. Мы тоже видели большое количество хороших и качественных проектов на бесплатных CMS, но проблемных проектов мы видели сильно больше. Просто статистика.
Белые и серые методы продвижения. Тренды 2023
sarges
2
комментария
0
читателей
Полный профиль
sarges - Нужно учитывать и тот факт, что со временем методы продвижения меняются и необходимо подстраиваться под новые реалии. Посоветую заглянуть на zenlink.ru/blog/kak-izmenilsja-internet-marketing-za-10-let и почитать статью, там рассказывается о том, как изменился интернет-маркетинг за последние 10 лет, какие сейчас тенденции и какие прогнозы в этой сфере.
Почему сайтам нужно переезжать с конструкторов на полноценные CMS
Seodm.ru
3
комментария
0
читателей
Полный профиль
Seodm.ru - Ааа по мне, сам seo специалист, вероятность внедрения необходимого контента на тильда того же блока этапом работы или преимуществ, намного выше чем на движке. А что тильда что движок малый бизнес норм продвигается особо супер разработки не требуется
Как мы увеличили для клиента трафик из поиска в 7 раз. Кейс
Кирилл Половников
2
комментария
0
читателей
Полный профиль
Кирилл Половников - Оба этих статуса (редирект и малополезная) преобладали в качестве проблем с индексацией. Помогла работа с .htaccess (в нем были ошибки и его чистили), работа над корректировкой редиректов, каноникалами и прочими техническими ошибками. Нельзя сказать, что только редиректы были ключевым препятствием.
Как показывать рекламу посетителям сайтов конкурентов
Павел
2
комментария
0
читателей
Полный профиль
Павел - Спасибо за комментарий. Гипотеза была в том, что с указанными счетчиками конкурентов показы будут не просто похожей аудитории их сайтов (как при рекламе по доменам), а именно на аудиторию которую Яндекс для себя разметил как целевая дл сайтов конкурентов. Важно, это гипотеза. А про белые нитки, как говорится, доверяй, но проверяй))
Как автоматизировать мессенджеры для бизнеса в CRM-системе
Алиналина
1
комментарий
0
читателей
Полный профиль
Алиналина - Кстати да. Но мы зарегались, CRMка реально интересная
Чек-лист: как настроить рекламу в Яндекс Директе и избежать ошибок
Сергей Ильин
2
комментария
0
читателей
Полный профиль
Сергей Ильин - я ваще не туда написал
Кейс MediaNation: увеличили еженедельный трафик автомобильной компании на 50% за год и вышли в топ поиска по 300 запросам
Игорь Скляр
1
комментарий
0
читателей
Полный профиль
Игорь Скляр - Действительно, изначально рост был именно по информационным запросам. Но рост позиций и трафика по информационным запросам положительно повлиял и на связанные позиции по коммерческим запросам и сдвинул видимость с мёртвой точки
Как попасть в топ-10 Яндекса и Google при продвижении сайта на регион Молдовы
Гость
9
комментариев
0
читателей
Полный профиль
Гость - "В первое время наши работы продолжали давать результат (сайт несколько месяцев рос), а потом начал постепенно терять позиции. По этой причине заказчик решил возобновить сотрудничество и вернулся в июле 2022. Мы еще ведем работы по восстановлению утраченных результатов." Хитрожопый клиент.
Медийная programmatic-реклама. Как восстать из пепла и покорять новые вершины
Гость
2
комментария
0
читателей
Полный профиль
Гость - ага, есть скрин до, а после нет понимания что работает кроме яндекса, кпд статьи 0
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
385
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
141
Комментариев
121
Комментариев
116
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
64
Комментариев
60
Комментариев
59

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