У меня есть стационарный c сайт через Cloudfront с источником S3 origin и пользовательским доменом по маршруту 53. Все работает хорошо, за исключением того, что Google также проиндексировал URL-адрес распределения Cloudfront (d123et c .cloudfront. net) а также мой пользовательский домен, что приводит к дублированию проблем с контентом.
Я пробовал канонические URL, но распределение остается проиндексированным. Было предложено обслуживать другой файл robots.txt в зависимости от того, какой домен используется, что звучит нормально, но нет .htaccess или веб-сервера, оставляя его функции Lambda Edge, чтобы попытаться отправить другой файл robots.txt. .
Проблема в том, что я не могу найти, как в функции определить, поступает ли запрос с моего пользовательского домена или с URL-адреса прямого распространения. Я пробовал белый список Origin, но он не передается при использовании источника S3. Я также попытался создать белый список заголовка Referer, но при обращении к файлу robots.txt не передается реферер, так как это прямой запрос.
В настоящее время я добавляю meta noindex на стороне клиента, используя js при загрузке страницы (что, как я понимаю, слишком поздно), а также перенаправление стороны клиента на мой действительный домен в случае, если кто-то следует за индексированным облачным фронтом Google. net domain.
Кто-нибудь знает, как определить в Lambda Edge, какой домен используется для запроса? Или каким-либо другим способом заблокировать Google от индексации URL-адреса Cloudfront, просто оставив его для индексации пользовательского домена.