Назад | Перейти на главную страницу

Google индексирует URL-адреса с другого сайта, размещенного на том же VPS.

У нас есть VPS-хостинг 2 сайта. WebsiteA.com имеет SSL.

WebsiteB.com не имеет SSL, но Google индексирует WebsiteB.com с URL-адресами HTTPS с WebsiteA.com

Пример: https://www.websiteB.com/url-from-website-A который, конечно, не существует и дает ошибку, но Google индексирует ее.

Дублирован не просто один URL-адрес, а каждый URL-адрес с веб-сайта A.

Мы предполагаем, что это влияет на SEO (как-то дублируется контент), потому что мы потеряли рейтинг.

Неправильная конфигурация VPS? Мы используем Ubuntu / Apache.

<VirtualHost *:80>
  ServerName websiteA.com
  ServerAlias www.websiteA.com
  Redirect permanent / https://www.websiteA.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName websiteA.com
  Redirect permanent / https://www.websiteA.com/
</VirtualHost>

<VirtualHost *:443>

  DocumentRoot /var/www/websiteA.com/public/
  ServerName www.websiteA.com

  php_flag display_errors On
  php_value memory_limit 256M
  php_value error_reporting 2047
  php_value post_max_size 32M
  php_value upload_max_filesize 32M

  <Directory /var/www/websiteA.com/>
    Require all granted
    AllowOverride All
    Options +FollowSymLinks
  </Directory>

  Include /etc/letsencrypt/options-ssl-apache.conf
  SSLCertificateFile /etc/letsencrypt/live/websiteA.com/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/websiteA.com/privkey.pem
</VirtualHost>

<VirtualHost *:80>

  DocumentRoot /var/www/websiteB.com
  ServerName websiteB.com
  ServerAlias www.websiteB.com

  <Directory /var/www/websiteB.com/>
    Require all granted
    AllowOverride All
    Options +FollowSymLinks
  </Directory>

</VirtualHost>

Что ж, Apache должен что-то обслуживать, когда кто-то обращается к нему через https://websiteB.com. Таким образом, он использует имеющийся у него контент с сайта A.

Это подробно объяснено в документации Apache, вот цитата из него:

Apache автоматически распознает на основе заголовка HTTP Host, предоставленного клиентом, всякий раз, когда наиболее точное совпадение для комбинации IP-адреса и порта указано на нескольких виртуальных хостах.

Директива ServerName может появляться в любом месте определения сервера. Однако каждый внешний вид отменяет предыдущий внешний вид (на этом сервере). Если ServerName не указан, сервер пытается определить его по IP-адресу сервера.

Первый виртуальный хост на основе имени в файле конфигурации для данной пары IP: порт важен, потому что он используется для всех запросов, полученных по этому адресу и порту, для которых ни один другой виртуальный хост для этой пары IP: порт не имеет совпадающего ServerName или ServerAlias. Он также используется для всех соединений SSL, если сервер не поддерживает указание имени сервера.

(выделено мной)

Добавьте VirtualHost для веб-сайта B на порт 443 и укажите ему правильный корень документа. Если у вас нет сертификата для него, используйте сертификат с сайта A. Люди, посещающие его, получат предупреждение о недействительном сертификате, но все равно получат это сейчас. По крайней мере, они (и поисковые системы) получают правильный контент, если они решат игнорировать недействительный сертификат.

Но с Let's Encrypt в настоящее время нет абсолютно никаких причин не предоставлять действующий сертификат.

В качестве альтернативы вы можете настроить перенаправление для https: // websiteB запросы к http, но посетители все равно получат предупреждение о сертификате до того, как будут перенаправлены. Как я уже сказал, сертификат Let's Encrypt для веб-сайта B был бы самым простым решением как для управления, так и для ваших посетителей.