Пользовательское происхождение Cloudfront вызывает проблемы с дублирующимся содержимым - PullRequest
11 голосов
/ 06 января 2012

Я использую CloudFront для показа изображений, css и js файлов для моего веб-сайта, используя опцию пользовательского происхождения с поддоменами CNAMEd для моей учетной записи.Это работает довольно хорошо.

Основной сайт: www.mainsite.com

  1. static1.mainsite.com
  2. static2.mainsite.com

Пример страницы: www.mainsite.com/summary/page1.htm

Эта страница вызывает изображение из static1.mainsite.com/images/image1.jpg

Если Cloudfront еще не кэшировал изображение,он получает изображение с www.mainsite.htm / images / image1.jpg

Это все работает нормально.

Проблема в том, что оповещение Google сообщило, что страница обнаружена в обоих случаях:

Страница должна быть доступна только с www.сайт.Страницы не должны быть доступны из доменов CNAME.

Я попытался перезаписать мод в файле .htaccess, а также попытался поместить exit () в основной файл сценария.

Но когда Cloudfront не находит версию файла static1 в своем кеше, он вызывает его с основного сайта, а затем кэширует.

Затем возникают вопросы:

1. What am I missing here?
2. How do I prevent my site from serving pages instead of just static components to cloudfront?
3. How do I delete the pages from cloudfront? just let them expire?

Спасибоза вашу помощь.

Джо

Ответы [ 2 ]

29 голосов
/ 16 мая 2013

[Я знаю, что эта ветка старая, но я отвечаю на нее для таких людей, как я, которые видят ее несколько месяцев спустя.]

Из того, что я прочитал и увидел, CloudFront не всегда идентифицирует себя вЗапросы.Но вы можете обойти эту проблему, переопределив robots.txt в дистрибутиве CloudFront.

1) Создайте новую корзину S3, которая содержит только один файл: robots.txt.Это будет файл robots.txt для вашего домена CloudFront.

2) Перейдите в настройки распространения в консоли AWS и нажмите «Создать источник».Добавьте корзину.

3) Перейдите в «Поведения» и нажмите «Создать поведение: Шаблон пути: robots.txt Origin: (ваше новое ведро)»

4) Установите поведение robots.txt выше.приоритет (меньшее число).

5) Перейдите к аннулированию и сделайте недействительным /robots.txt.

Теперь abc123.cloudfront.net/robots.txt будет обслуживаться из корзины, а все остальное будетобслуживаться с вашего домена.Вы можете разрешить / запретить сканирование на любом уровне независимо.

Другой домен / поддомен также будет работать вместо корзины, но зачем идти на неприятности.

1 голос
/ 01 февраля 2012

Вам необходимо добавить файл robots.txt и запретить сканерам индексировать контент в static.mainsite.com.

В CloudFront вы можете контролировать имя хоста, с которым CloudFront будет обращаться к вашему серверу. Я предлагаю использовать конкретное имя хоста для CloudFront, которое отличается от вашего обычного имени хоста веб-сайта. Таким образом, вы можете обнаружить запрос к этому имени хоста и обработать robots.txt, который запрещает все (в отличие от вашего обычного веб-сайта robots.txt)

...