如何使用 Apache .htaccess 仅缓存主页?

如何使用 Apache .htaccess 仅缓存主页?

这个配置很接近...

<FilesMatch "\.(php)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>

...但是它可以处理所有 php 页面,而不仅仅是我想要的主页。

基本上,开发人员说他希望 example.com 被缓存,然而:

http://example.com/electronics/

不会被缓存。

请注意,开发人员正在使用漂亮的 URL 和 MVC 框架,该框架通过 index.php 运行所有内容。

答案1

Apache FilesMatch 指令接受正则表达式,但这也意味着您可以适应文件名 [index.php] 的精确表达式(据我了解 - 可能不正确 - 这是您想要缓存的唯一文件,即使它使用永久链接)。您试过吗?

现在,您正在使用 [".(php)$"] 查找所有 PHP 页面。

答案2

如何将 php 文件符号链接到目录中的另一个名称,例如ln -s index.php cachedindex.php,让 apache 对 / 使用 cachedindex.php 并在其上设置缓存标头。让框架继续对所有其他页面使用 index.php。

虽然您正在与开发人员合作,但是当设置了正确的选项时(在这种情况下仅当没有设置任何选项时),php 代码不只是输出适当的缓存标头,这有什么原因吗?

相关内容