Apache 虚拟主机正在重定向到错误的虚拟主机

Apache 虚拟主机正在重定向到错误的虚拟主机

我正在尝试在现有的 digitalocean droplet 中实现第二个域。

因为我在 DO 上,所以我关注了 ryanpq 在这个帖子上的回答:https://www.digitalocean.com/community/questions/is-it-possible-to-install-another-wordpress-on-droplet

与该主题的评论者类似,我的新网站会重定向到我现有的网站(即使在适当更改 DocumentRoot 和 Directory 之后)。

这是我的配置:

其中/etc/apache2/sites-enabled,我有 4 个文件:000-default-le-ssl.conf 000-default.conf example1.conf example2.conf

000-default.confexample1.conf均为副本。

example1.conf看起来像这样:

# Added to mitigate CVE-2017-8295 vulnerability
UseCanonicalName On

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        ServerName example1.io
        ServerAlias www.example1.io

        DocumentRoot /var/www/html

        <Directory /var/www/html/>
            Options FollowSymLinks
            AllowOverride None
            Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example1.io [OR]
RewriteCond %{SERVER_NAME} =example1.io
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

example2.conf看起来像这样:

<VirtualHost *:80>
        ServerAdmin [email protected]

        ServerName example2.com
        ServerAlias www.example2.com

        DocumentRoot /var/www/example2

        <Directory /var/www/example2/>
            Options FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

/var/www/html我的目录结构如下/var/www/example2

在 DNS 控制面板中,我创建了新的 A 和 CNAME 记录。A 记录指向较旧的现有站点的 IP 地址(因此,example2.com 指向 128....)

访问 example2.com 会将我重定向到 example1.io。

我错过了什么?

答案1

配置错误?

首先,您的example1.conf文件不包含结束</VirtualHost>标记。由于此文件在第二个域之前加载,example2.conf因此可能无法正确加载。重新加载 Apache 时是否出现任何错误?您可以使用它mod_info来验证两个虚拟主机是否都已正确加载。

域名系统

我不完全理解你关于 DNS 的评论。你提到“旧网站的 IP 地址”,好像新网站有不同的 IP 地址?由于你的同一台虚拟机 (droplet) 托管两个网站,因此所有名称都应指向虚拟机的这个 IP 地址,无论是直接(A 记录)还是间接(CNAME 记录)。

例如:

example1.io.        A       203.0.113.80
www.example1.io.    CNAME   example1.io

example2.com.       A       203.0.113.80
www.example2.com.   A       203.0.113.80

您可以使用以下方法测试并验证所有名称都指向同一个 IP 地址或者从命令行界面。

HTTPS

当您将 example1.io 重定向到 HTTPS 时,您的000-default-le-ssl.conf文件是什么样子的。您是通过 HTTP 还是 HTTPS 测试 example2.com?

日志

当您访问http://www.example2.com/并且您看到了 example1.io 的网页,您的日志显示了什么?

相关内容