.env 文件仅在通过 https 和网站 IP 地址访问时暴露

.env file exposed only when accessing via https and website IP address

我无法理解为什么 .env 仍然暴露。该网站具有 HTTPS 证书。我在 .htaccess 文件中拒绝了 .env 文件,如下所示:

# Disable index view
Options -Indexes

# Hide a specific file
<Files .env>
    Require all denied
</Files>

在这些 URL 上被正确阻止(403 禁止错误):

https://example.com/.env
http://example.com/.env
http://###.IPaddress.###/.env

但是忽略“不安全”警告在这里仍然可见:

https://###.IPaddress.###/.env

同样,仍然有 Apache Testing 123 页面作为上述 URL 的主页(当不访问 .env 文件时)。我怎样才能阻止这个文件?

您可能有一个 default <VirtualHost *:443> 正在捕获请求(服务器配置中定义的第一个虚拟主机是“默认”),这可能不允许 .htaccess 覆盖(即 AllowOverride 未定义或设置为 None),因此 .htaccess 文件未被处理。

您需要确保捕获请求的 default vHost 要么完全阻止对 IP 地址的请求,要么重定向到规范的主机名。

有关配置此功能的更多详细信息,请参阅有关 ServerFault 的以下问题: