php - 页面缓存时WordPress会触发index.php吗?
问题描述
我网站上的所有页面都使用 WP Rocket 插件进行缓存,每个人都告诉我,当页面被缓存时,根index.php不会被触发。
我继续将这段代码添加到我的根 index.php 以跟踪其执行情况:
error_log( date('[ Y-m-d H:i:s ] ', $_SERVER['REQUEST_TIME'] ) . $_SERVER['REQUEST_URI'] ."\n", 3, dirname( __FILE__ ) . "/index.php.log" );
我检查了日志,确实 index.php 似乎没有在缓存页面上触发。
我不明白的是,关于 WordPress 加载顺序的在线指南说 index.php 是您访问网站时首先执行的内容。它加载 wp-blog-header.php,然后 wp-load.php 设置 WordPress 环境等。
https://medium.com/@dendefe/wordpress-loading-sequence-a-guided-tour-e077c7dbd119 https://www.mikeinmonospace.com/wordpress-internals-loading-sequence/
那么我错过了什么?为什么页面缓存时没有触发 index.php?在加载缓存页面的 index.php之前是否触发了什么?
解决方案
在 WordPress(实际上是大多数现代 CMS)中,使用前端控制器模式,它将 CMS 的所有请求路由到单个文件,该文件通常是index.php
. 但是,正如@CBroe 所说,这不是CMS 这样做,而是 Web 服务器中的规则。对于基于 Apache 的 Web 服务器,它位于.htaccess
文件中,对于 IIS,它可能是一个web.config
文件,而对于 Nginx,它可能位于其中一个服务器指令中。
当使用缓存解决方案时,它们通常还会将规则注入 Web 服务器,但在CMS 的规则之前,这意味着它index.php
不再是第一个并且因此是默认规则。
推荐阅读
- javascript - html css javascript 我需要在用户单击链接后立即关闭导航窗口
- javascript - 使用流不工作将文件保存到 Azure 存储
- javascript - 我无法使用 jsonSchema 验证邮递员中任何对象的响应
- forms - 访问 - 如何设置拆分表单大小属性并使其保持不变?
- html - div的溢出在y方向扩展,但需要在x方向滚动
- regex - 对于我无法上班的 GA 正则表达式查询,我可以获得一些帮助吗?
- discord.js - 删除以前的消息不和谐机器人
- css - 如何让 vuetify 样式在 laravel 8 中工作?
- typescript - nestjs 单元测试 createTestingModule 依赖注入
- javascript - 从检查元素是否作为另一个子元素存在于 Javascript 中删除错误