apache虚拟主机子域名无法正常工作

apache虚拟主机子域名无法正常工作

我正在尝试配置一个子域名:api.example.com(exapmle.com 替换为我的实际域名)

我已经设置了两个站点的虚拟主机:example.com 和 example.nl,它们都有独立的目录,并且可以作为独立的站点正常工作。

现在我想添加 api.example.com,并添加其自己的单独 documentroot。我添加了一个名为“api.example.com.conf”的配置文件,其中包含以下内容:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName api.example.com
ServerAlias www.api.example.com
DocumentRoot /var/www/api.example.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.api.example.com [OR]
RewriteCond %{SERVER_NAME} =api.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

我添加了文件夹 /var/www/api.example.com/html,其中包含示例 index.html。我为该文件夹赋予了正确的权限。之后,我使用“a2ensite api.example.com.conf”启用了该站点并重新启动了 apache。

我在 example.com 记录中添加了一条新记录。这是一条带有 api.example.com 的 A 记录,它会重定向到与 example.com 相同的 IP,因为它们位于同一台服务器上。

完成所有这些操作后,我期望当我访问 api.example.com 时,它会显示我创建的示例 index.html,但事实并非如此。当我访问 api.example.com 时,它与我访问 example.com 时是一样的。

我该如何让 api.example.com 拥有自己的可以正常工作的文档根目录?

答案1

我强制所有域名使用 https,但我尚未为我的新子域名设置 SSL。我有一个虚拟主机http://api.example.com,但我的服务器不允许 HTTP,所以它重定向到 https,因为没有虚拟主机https://api.example.com它只是重定向到主域。

相关内容