Google индексирует URL-адреса с другого сайта, размещенного на том же VPS
У нас есть VPS хостинг 2 сайта. WebsiteA.com имеет SSL.
WebsiteB.com не имеет SSL, но Google индексирует WebsiteB.com с HTTPS URL от 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>
1 ответ
Что ж, Apache должен что-то обслуживать, когда кто-то получает к нему доступ через https://websiteb.com/. Таким образом, он использует контент, который у него есть, с сайта A.
Это подробно объясняется в документации Apache, здесь приведена цитата из нее:
Apache автоматически различает заголовок HTTP Host, предоставленный клиентом, всякий раз, когда наиболее конкретное совпадение для IP-адреса и комбинации портов указано в нескольких виртуальных хостах.
Директива ServerName может появляться в любом месте определения сервера. Тем не менее, каждый вид переопределяет предыдущий вид (на этом сервере). Если имя сервера не указано, сервер пытается вывести его из IP-адреса сервера.
Первый основанный на имени vhost в файле конфигурации для данной пары IP: порт имеет большое значение, поскольку он используется для всех запросов, полученных по этому адресу и порту, для которых ни один другой vhost для этой пары IP: портов не имеет соответствующего ServerName или ServerAlias. Он также используется для всех соединений SSL, если сервер не поддерживает указание имени сервера.
(выделение мной)
Добавьте VirtualHost для веб-сайта B на порт 443 и укажите его на правильный корень документа. Если у вас нет сертификата, используйте сертификат с сайта A. Люди, посещающие его, получат предупреждение о недействительном сертификате, но они все равно его получают. По крайней мере, они (и поисковые системы) получают правильное содержание, если решают игнорировать недействительный сертификат.
Но с Let's Encrypt в настоящее время нет абсолютно никаких причин не предоставлять действительный сертификат.
В качестве альтернативы вы можете настроить перенаправление для запросов https://websiteb/ на http, но посетители все равно получат предупреждение сертификата, прежде чем они будут перенаправлены. Как я уже сказал, сертификат Let's Encrypt для веб-сайта B будет самым простым решением как для руководства, так и для ваших посетителей.