django docs:

您还应该配置位于Django前面的Web服务器以验证主机 . 它应该响应静态错误页面或忽略不正确主机的请求,而不是将请求转发给Django . 通过这种方式,您可以避免Django日志中的虚假错误(如果您以这种方式配置了错误报告,则可以避免发送电子邮件) . 例如,在nginx上,您可以设置默认服务器以在无法识别的主机上返回“444 No Response”:

我正在使用Apache,这有效:
http://serverip - > 404错误
http://www.example.com - > https://www.example.com - > django网站
http://example.com - > https://example.com - > django网站

现在我有https://serverip的问题
我的浏览器收到一条不安全的消息,因为我只有example.com,www.example.com的SSL证书,在我接受安全警告后,我看到django网站,但我想要404错误页面 . 我怎样才能实现这个目标或者我是否误解了django文档?

Update Config:
假设django站点是/var/www/html/index.html以简化
000-default.conf:

<VirtualHost *:80>
        Redirect 404 /
</VirtualHost>

example.com.conf:

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

example.com-LE-ssl.conf中:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin example@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>