Поставили задачку сеошники, сделать на 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 блокируем плохих ботов.
Pingback: nginx ограничить GET запрос - FRYAHA.RU