Google 正在索引托管在同一 VPS 上的另一个网站的 URL

Google 正在索引托管在同一 VPS 上的另一个网站的 URL

我们有一个 VPS 托管 2 个网站。WebsiteA.com 有 SSL。

WebsiteB.com 没有 SSL,但 Google 使用 WebsiteA.com 的 HTTPS URL 为 WebsiteB.com 编制索引

例子:https://www.websiteB.com/url-from-website-A它当然不存在并会出现错误,但谷歌会对其进行索引。

重复的不仅仅是一个 URL,而是网站 A 的每个 URL。

我们认为这会对 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 文档中有详细解释,下面引用其中一段:

每当在多个虚拟主机中列出最具体的 IP 地址和端口组合匹配时,Apache 就会根据客户端提供的 HTTP 主机标头自动进行区分。

ServerName 指令可以出现在服务器定义中的任何位置。但是,每次出现都会覆盖前一次出现(在该服务器内)。如果没有指定 ServerName,服务器会尝试从服务器的 IP 地址推断出它。

配置文件中针对给定 IP:端口对的第一个基于名称的虚拟主机非常重要,因为它用于在该地址和端口上接收的所有请求,而对于该 IP:端口对,没有其他虚拟主机具有匹配的 ServerName 或 ServerAlias。如果服务器不支持服务器名称指示,它也用于所有 SSL 连接。

(我突出显示)

在端口 443 上为网站 B 添加 VirtualHost,并将其指向正确的文档根目录。如果您没有证书,请使用网站 A 的证书。访问该网站的人将收到有关证书无效的警告,但他们现在无论如何都会收到该警告。如果他们选择忽略无效证书,至少他们(和搜索引擎)会获得正确的内容。

但是有了 Let's Encrypt,现在没有理由不提供有效的证书。

或者你可以配置重定向https://websiteB请求到 http,但访问者在重定向之前仍会收到证书警告。正如我所说,对于网站 B 来说,使用 Let's Encrypt 证书将是最简单的解决方案,对管理层和访问者来说都是如此。

相关内容