У нас есть 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 может появляться в любом месте определения сервера. Однако каждый внешний вид отменяет предыдущий внешний вид (на этом сервере). Если имя сервера не указано, сервер пытается вычислить его по IP-адресу сервера.
Первый виртуальный хост на основе имени в файле конфигурации для данной пары IP: порт имеет значение, поскольку он используется для всех запросов, полученных на этом адрес и порт, для которых ни один другой виртуальный хост для этой пары IP: порт не имеет совпадающего ServerName или ServerAlias. Он также используется для всех SSL-соединений, если сервер не поддерживает указание имени сервера.
(выделено мной)
Добавьте VirtualHost для веб-сайтаB на порт 443 и укажите его на правильный корень документа. Если у вас нет сертификата для него, используйте сертификат с сайта A.Люди, которые его посетят, получат предупреждение о недействительном сертификате, но все равно получат это сейчас. По крайней мере, они (и поисковые системы) получают правильный контент, если они решают игнорировать недействительный сертификат.
Но с Let's Encrypt нет абсолютно никаких причин не предоставлять действительный сертификат в настоящее время.
В качестве альтернативы вы можете настроить перенаправление для запросов https: // websiteB на http, но посетители все равно получат предупреждение о сертификате до того, как будут перенаправлены. Как я уже сказал, сертификат Let's Encrypt для веб-сайта B был бы самым простым решением как для управления, так и для ваших посетителей.