Виртуальный процесс Cloudfront вызывает повторяющиеся проблемы с содержимым
Я использую CloudFront для работы с изображениями, css и js файлами для своего веб-сайта с использованием опции пользовательского происхождения с поддоменами CNAMEd для моей учетной записи. Это работает очень хорошо.
Основной сайт: www.mainsite.com
- static1.mainsite.com
- 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.
Я попытался поместить mod rewrite в файл .htaccess, и я также попытался поместить exit() в основной файл script.
Но когда Cloudfront не находит статическую версию файла в своем кеше, он вызывает его с основного сайта и затем кэширует его.
Вопросы:
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?
Спасибо за вашу помощь.
Джо
Ответы
Ответ 1
[Я знаю, что эта ветка устарела, но я отвечаю за таких людей, как я, которые видят это несколько месяцев спустя.]
Из того, что я читал и видел, CloudFront не всегда идентифицирует себя в запросах. Но вы можете обойти эту проблему, переопределив robots.txt в дистрибутиве CloudFront.
1) Создайте новый ведро S3, содержащее только один файл: robots.txt. Это будет файл robots.txt для вашего домена CloudFront.
2) Перейдите к настройкам распространения в консоли AWS и нажмите "Создать происхождение". Добавьте ведро.
3) Перейдите в Поведение и нажмите "Создать поведение":
Path Pattern: robots.txt
Происхождение: (ваше новое ведро)
4) Установите поведение robots.txt с более высоким приоритетом (меньшее число).
5) Перейдите к недействительным и недействительным /robots.txt.
Теперь abc123.cloudfront.net/robots.txt будет отправлен из ведра, и все остальное будет обслуживаться из вашего домена. Вы можете разрешить/запретить сканирование на любом уровне независимо.
Другой домен/субдомен также будет работать вместо ведра, но зачем идти на поводу.
Ответ 2
Вам нужно добавить файл robots.txt и сообщить сканерам не индексировать контент в static1.mainsite.com.
В CloudFront вы можете управлять именем хоста, с которым CloudFront будет обращаться к вашему серверу. Я предлагаю использовать определенное имя хоста, чтобы предоставить CloudFront, который отличается от обычного имени хоста веб-сайта. Таким образом, вы можете обнаружить запрос на это имя хоста и подать файл robots.txt, который запрещает все (в отличие от вашего обычного сайта robots.txt).