如何在未配置的子域上将 apache 配置为 return 404?
How do I configure apache to return 404 on unconfigured subdomains?
我在装有 apache 的 Debian 计算机上自行托管一个网站,在我的 DNS 配置中,我已将我域 (*.mydomain.com) 的所有子域设置为转到我的 Debian 计算机的 IP .我如何配置 apache,以便如果有人转到没有虚拟主机的子域,我为每个子域创建一个单独的文件,他们会收到 404 错误,而不是看到根域上的内容?我尝试编辑 000-default.conf 文件并在其中放入以下内容:
<VirtualHost *:80>
ServerName null
Redirect 404 /
</VirtualHost>
<VirtualHost *:443>
ServerName null
Redirect 404 /
</VirtualHost>
但现在当我到达 mydomain.com 时,出现以下错误:
This site can’t provide a secure connection
mydomain.com sent an invalid response.
ERR_SSL_PROTOCOL_ERROR
奇怪的是,如果我转到我为 mydomain.com 配置的子域之一,它会正常工作,我会看到应该在子域上的页面。
Your connection is not private
错误消息来自所使用的证书,该证书可能对您要连接的域无效。
*.mydomain.com 等通配符证书对 'third-Level.mydomain.com' 有效,但对 'somthing.third-Level.mydomain.com' 无效,后者需要像 '*.third-Level.mydomain.com'.[=12= 这样的通配符]
您可以从 Let's Encrypt (https://letsencrypt.org/)
获取免费且有效的通配符证书
并且,不要将端口 443 添加到 000-default.conf
,而是使用 default-ssl.conf
文件。使用 a2enconf default-ssl
启用 default-ssl.conf
,然后从 000-default.conf
中删除 443
。然后,restart/reload apache 使用 systemctl restart apache2
我在装有 apache 的 Debian 计算机上自行托管一个网站,在我的 DNS 配置中,我已将我域 (*.mydomain.com) 的所有子域设置为转到我的 Debian 计算机的 IP .我如何配置 apache,以便如果有人转到没有虚拟主机的子域,我为每个子域创建一个单独的文件,他们会收到 404 错误,而不是看到根域上的内容?我尝试编辑 000-default.conf 文件并在其中放入以下内容:
<VirtualHost *:80>
ServerName null
Redirect 404 /
</VirtualHost>
<VirtualHost *:443>
ServerName null
Redirect 404 /
</VirtualHost>
但现在当我到达 mydomain.com 时,出现以下错误:
This site can’t provide a secure connection
mydomain.com sent an invalid response.
ERR_SSL_PROTOCOL_ERROR
奇怪的是,如果我转到我为 mydomain.com 配置的子域之一,它会正常工作,我会看到应该在子域上的页面。
Your connection is not private
错误消息来自所使用的证书,该证书可能对您要连接的域无效。 *.mydomain.com 等通配符证书对 'third-Level.mydomain.com' 有效,但对 'somthing.third-Level.mydomain.com' 无效,后者需要像 '*.third-Level.mydomain.com'.[=12= 这样的通配符]
您可以从 Let's Encrypt (https://letsencrypt.org/)
获取免费且有效的通配符证书并且,不要将端口 443 添加到 000-default.conf
,而是使用 default-ssl.conf
文件。使用 a2enconf default-ssl
启用 default-ssl.conf
,然后从 000-default.conf
中删除 443
。然后,restart/reload apache 使用 systemctl restart apache2