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

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

Россия +7 (495) 139-20-33
Шрифт:
3 7903

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 редирект повлечет за собой перенос и всех этих проблем на новый сайт.
(Голосов: 11, Рейтинг: 5)
Читайте нас в Telegram - digital_bar

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


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • Гость
    2
    комментария
    0
    читателей
    Гость
    2 месяца назад
    asd
    -
    0
    +
    Ответить
  • Гость
    2
    комментария
    0
    читателей
    Гость
    2 месяца назад
    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
    читателей
    Гость
    2 месяца назад
    Очень полезная статья!
    -
    1
    +
    Ответить
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Известность бренда SEO-компаний 2021
Костя
1
комментарий
0
читателей
Полный профиль
Костя - Iqad самые классные!!!
Медицинская тематика в SEO: исследование спроса
Гость
1
комментарий
0
читателей
Полный профиль
Гость - В файле по ссылке запрос "как понизить голос" относят к 100-тысячным. Каким боком? Вордстат показывает в разы меньшую цифру.
Товары, которые не стоит продавать на Wildberries: типичные ошибки новичков
Николай
1
комментарий
0
читателей
Полный профиль
Николай - Похоже wildberries-edu.ru/
SEO-продвижение монобрендового интернет-магазина. Кейс Casio
Mike
11
комментариев
0
читателей
Полный профиль
Mike - Яндекс сам не знает, что рекомендует. Каноникал они игнорируют все равно. А вот в гугле четко сказано, что если у страниц разный контент, то каноникал ставить не правильно.
10 сервисов для работы с текстом в 2022 году
RasDva
10
комментариев
0
читателей
Полный профиль
RasDva - Серпстат заблокировал пользователей из РФ без возврата денег за тарифы. Поэтому не рекомендую.
Внедрение и тестирование поиска по товарам в интернет-магазине инструментов
Геннадий IQAD.RU
1
комментарий
0
читателей
Полный профиль
Геннадий IQAD.RU - На текущий момент достаточно часто (через 2-3 фида находятся проблемы). Причина в том, что инструмент пока находится в бета-версии и фиды проходят ручную модерацию через асессоров Яндекса. Тем не менее, как правило, правки минимальны.
Медицинская тематика в SEO: исследование выдачи
УточняюВопросы
1
комментарий
0
читателей
Полный профиль
УточняюВопросы - не очень понятен ваш запрос, можете чуть детальнее расписать? у нас же РУ-семантика, соответственно и язык сайтов в выдаче РУ конечно могуть быть какие то случайные выбросы, но вряд ли значимые
«Ашманов и партнёры» создали нейросеть, которая генерирует нешаблонные описания для страниц сайтов
Алексей
1
комментарий
0
читателей
Полный профиль
Алексей - Функционал есть, но он не отдельный. Он идёт в дополнение к LSI-анализу, интегрирован в него. Можете увидеть сгенерированные мета-теги на вкладке "Текст" в результатах LSI-анализа. Они будут указаны с пометкой (авто). Также сгенерированные мета-теги указаны в ТЗ для копирайтера, которое формируется по итогам анализа конкурентов.
Реклама в Google Ads и AdSense в России работает нестабильно
Гость
2
комментария
0
читателей
Полный профиль
Гость - У тебя трафик с поиска уменьшился?
7 трендов интернет-маркетинга на 2022 год
Иван
1
комментарий
0
читателей
Полный профиль
Иван - За трендами реально будущее!
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
385
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
141
Комментариев
121
Комментариев
115
Комментариев
97
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
62
Комментариев
60
Комментариев
59

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