Apache 如何处理 .htaccess 文件更改?他们是否根据每个请求进行了修复?

How Apache handles .htaccess file changes? Are they reparsed on each request?

我想知道,.htaccess 文件是如何在 Apache 中实现的?它们是真的在每个后续请求中重新解析还是缓存在某个地方并仅在更改时重新解析?

这些文件的更改跟踪是如何实现的? stat() 用于每个请求的文件更改或通过 inotify()?

.htaccess 文件不应被使用,除非您无权访问 apache 配置。例如共享主机。由于如今 VPS/Cloud 服务器数量众多且成本非常低,因此几乎没有理由获得共享主机。

.htaccess 文件实际上是在每次请求时读取的,因为它使用每个目录上下文。所以使用它们会对性能造成轻微影响。即使您不使用 .htaccess 文件,即使您的配置中只有 AllowOverride All 也会产生相同的效果。

需要 .htaccess 文件的误解是因为大多数软件,例如wordpress 或其他 cmses 告诉您在此处添加代码。那是因为大多数托管在过去几年都是共享的,除非您购买昂贵的 VPS' 或专用服务器,否则人们无法访问 Apache 配置文件。

我认为根本没有任何跟踪,而且可能也不需要,因为它会在每次请求时读取 .htaccess 文件,而不管是否进行了更改。所以这就是为什么它们完全没有效率并且不应该被使用的原因。将您的规则和指令放入您的虚拟主机文件中,您将拥有一个更好的服务器。

您可以从 Apache 读取 When not to use .htaccess