使用 Ubuntu 18.04
我有我的主要网站www.example.com
,所有文件都托管在/var/www/html/
其中,并且按预期工作。我现在想在子域中创建一个新网站www.blog.example.com
。
我在我的网络主机上为子域创建了一个新的 dns 记录,并确认它正在工作,当我 ping 时,www.blog.example.com
我看到了正确的服务器 IP 地址。
我的目录结构如下所示;
/var/www/html
(包含www.example.com的所有文件)/var/www/blog.example.com
(包含用于测试的单个 index.html 文件)
我有每个域的虚拟主机,内容如下;
/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html/rascal.ac.uk>
AllowOverride all
Order allow,deny
allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include conf-available/serve-cgi-bin.conf
</VirtualHost>
/etc/apache2/sites-available/blog.example.com.conf
<VirtualHost *:80>
ServerName blog.example.com
DocumentRoot /var/www/blog.example.com
<Directory /var/www/blog.example.com/>
AllowOverride all
Order allow,deny
allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
也有/etc/apache2/sites-available/000-default.conf
这样的;
<VirtualHost *:80>
DocumentRoot /var/www/html
<Directory "/var/www/html">
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
所有站点均已启用,并且我已多次重新加载/重新启动 apache。
当我访问时,www.example.com
我看到了我的主要网站,正如预期的那样。当我访问www.blog.example.com
我的主要网站时,我应该看到我的index.html
文件中的内容。
如果我禁用 000-default.conf
两个 url 显示的内容blog.example.com
,问题可能出在这个文件中吗?
你有
但这与www.blog.example.com的名称不同。所以 Apache 不使用那个 VirtualHost。它改为回退到默认的 VirtualHost。添加
应该修复它。请参阅ServerAlias。
当然,这些是示例名称。如果这不能解决问题,请编辑您的问题以显示真实的主机名。