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

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

Россия +7 (495) 139-20-33
Шрифт:
4 15179
Подпишитесь на нас в 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 редирект повлечет за собой перенос и всех этих проблем на новый сайт.

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


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
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
Накрутка поведенческих факторов: дорого, сложно, но можно. Если очень хочется
Oleg_bobr2012
1
комментарий
0
читателей
Полный профиль
Oleg_bobr2012 - Мда...Может Анне сразу в Яндекс написать кейсы по накрутке ПФ. Я бы такого сотрудника гнал вон.
28 способов повысить конверсию интернет-магазина
Татьяна
1
комментарий
0
читателей
Полный профиль
Татьяна - Очень действенные рекомендации представлены в статье! Всё четко расписано и легко внедряемо в работу интернет-магазинов.Удобство и наглядность+различные бонусы и скидки-именно то, что и цепляет покупателя.
5 способов увидеть сайт глазами поисковика: анализируем скрытый контент и cloaking
Гость
1
комментарий
0
читателей
Полный профиль
Гость - Сейчас клоаку прячут, так что под нее можно глянуть только с гуггловских ip. Сейчас только гуггл сервисами можно глянуть
7 актуальных сервисов для анализа сайта: сравнительная характеристика
Jenimeon
1
комментарий
0
читателей
Полный профиль
Jenimeon - SimilarWeb один из моих фаворитов, частенько им пользуюсь. Ценник не малый, но функционал хороший. Be1 тоже годный.
Создали ресурс для металлургов, который позволяет следить за аналитикой рынка и осуществлять продажи
Наталья Сталь
3
комментария
0
читателей
Полный профиль
Наталья Сталь -
Какие сайты лидировали в поиске Яндекса и Google в 2023 году
Гость
1
комментарий
0
читателей
Полный профиль
Гость - Если что по рейтингу вы не правы, есть ядро по которому производиться оценка и вы можете по нему самостоятельно все посмотреть. Единственный объективный рейтинг по SEO. Других не знаю Ну я вам скажу что это не так и в предыдущие года сайт моего клиента попадал в рейтинг, при чем несколько раз. И я прекрасно знал еще до объявления результатов кто лидер - рейтинг прозрачный, есть фразы по которым набираются баллы. В этом году наш сайт не попал в рейтинг например и это было понятно, что не попадет (по статистике позиций)
5 ошибок отдела продаж, из-за которых вы теряете клиентов
Андрей
1
комментарий
0
читателей
Полный профиль
Андрей - Крутая статья! Можно еще указать: Работу без CRM-системы - я считаю, что это основа отдела продаж. Потому что не все компании решаются на внедрение отдельно системы для отдела продаж. Но зато можно что то многофункциональное внедрить аспро.клауд или что то подобное
Простые SEO-работы, которые могут увеличить прибыль компании. Часть 1
roma.lisov
1
комментарий
0
читателей
Полный профиль
roma.lisov - Воспользовался советом по проверке и настройке картинок на сайте – реально дельный совет. Вот вроде и просто, казалось бы, а мне в голову раньше не пришло. А такие нюансы, конечно, нужно знать)
Яндекс встроил нейросети в свой Браузер
RasDva
12
комментариев
0
читателей
Полный профиль
RasDva - О дааааа)
Как мы увеличили поисковый трафик на 30% с помощью ChatGPT
Светлана Светлана
23
комментария
0
читателей
Полный профиль
Светлана Светлана - Я сама работаю в маркетинге и недавно решила еще дополнительно пройти курсы по интернет маркетингу astobr.com/services/povyshenie-kvalifikatsii/menedzhment-upravlenie/internet-marketing/ , как по мне эти знания которые я получила, очень помогают мне в работе
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
386
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
141
Комментариев
121
Комментариев
120
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
64
Комментариев
60
Комментариев
59

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