nginx apache redirect seo

Дата | 04.12.2020

nginx apache redirect seo
Поставили задачку сеошники, сделать на nginx apache redirect seo для ботов.
Имеется два домена.
Домен 0 (dom0.local) нужно перенаправлять пользователей на домен 1, а ботов поисковых систем оставлять не тронутыми на домене 0.
Домен 1 (dom1.local) перенаправляем только ботов на домен 0, простых пользователей не трогаем.
Есть разные сервера под управлением nginx и apache.
Пример настройки под nginx.
В общем конфигурационном файле nginx.conf в секции http добавляем такую запись.

map $http_user_agent $valid_bot {
  default 1;
~(?i)(APIs-Google|Yahoo!|AdsBot-Google|Googlebot|Mediapartners-Google|AdsBot-Google-Mobile-Apps|YandexBot|YandexAccessibilityBot|YandexDirectDyn|YandexImages|YandexVideo|YandexMedia|YandexBlogs|YandexFavicons|YandexWebmaster|YandexPagechecker|YandexImageResizer|YandexAdNet|YandexDirect|YaDirectFetcher|YandexCalendar|YandexSitelinks|YandexMetrika|YandexNews|YandexCatalog|YandexMarket|YandexVertis|YandexForDomain|YandexBot|YandexSpravBot|YandexSearchShop|YandexOntoDB|YandexOntoDBAPI|YandexVerticals|Mail.RU_Bot|StackRambler|msnbot|bingbot) 0;
}

Теперь переходим к настройкам virtual hosts домена 1.
Добавляем перед первым location

## redirect search engine bots
if ($valid_bot = 0) { return 302 https://dom0.local$request_uri; }

Настройка virtual hosts у домена 0.

## redirect is not search engine bots
if ($valid_bot = 1) { return 302 https://dom1.local$request_uri; }

Теперь проделаем настройку на apache.
Я добавил настройку в virtual hosts, не стал добавлять в .htaccess так как он общий и пришлось бы городить мудреный редирект через проверки RewriteCond %{HTTP_HOST} ^sites\.local$ [NC].
Домен 1

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (APIs-Google|Yahoo!|AdsBot-Google|Googlebot|Mediapartners-Google|AdsBot-Google-Mobile-Apps|YandexBot|YandexAccessibilityBot|YandexDirectDyn|YandexImages|YandexVideo|YandexMedia|YandexBlogs|YandexFavicons|YandexWebmaster|YandexPagechecker|YandexImageResizer|YandexAdNet|YandexDirect|YaDirectFetcher|YandexCalendar|YandexSitelinks|YandexMetrika|YandexNews|YandexCatalog|YandexMarket|YandexVertis|YandexForDomain|YandexBot|YandexSpravBot|YandexSearchShop|YandexOntoDB|YandexOntoDBAPI|YandexVerticals|Mail.RU_Bot|StackRambler|msnbot|bingbot) [NC]
RewriteRule "^(.*)$" "https://dom0.local%{REQUEST_URI}" [L,R=302]

Настройка для домен 0.

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !(APIs-Google|Yahoo!|AdsBot-Google|Googlebot|Mediapartners-Google|AdsBot-Google-Mobile-Apps|YandexBot|YandexAccessibilityBot|YandexDirectDyn|YandexImages|YandexVideo|YandexMedia|YandexBlogs|YandexFavicons|YandexWebmaster|YandexPagechecker|YandexImageResizer|YandexAdNet|YandexDirect|YaDirectFetcher|YandexCalendar|YandexSitelinks|YandexMetrika|YandexNews|YandexCatalog|YandexMarket|YandexVertis|YandexForDomain|YandexBot|YandexSpravBot|YandexSearchShop|YandexOntoDB|YandexOntoDBAPI|YandexVerticals|Mail.RU_Bot|StackRambler|msnbot|bingbot) [NC]
RewriteRule "^(.*)$" "https://dom1.local%{REQUEST_URI}" [L,R=302]

Вот и вся настройка у nginx apache redirect seo.
В nginx ограничиваем GET запросы.
nginx 301 редирект.
nginx разделение логов.
webp nginx правило отображения картинок.
joomla nginx redirect.
nginx блокируем плохих ботов.

Одна мысль на “nginx apache redirect seo

  1. Pingback: nginx ограничить GET запрос - FRYAHA.RU

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

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