即使在提供静态文件时,仍然设置使用 PHP 设置的 HTTP 标头

Posted

技术标签:

【中文标题】即使在提供静态文件时,仍然设置使用 PHP 设置的 HTTP 标头【英文标题】:HTTP header set with PHP is still set even when serving static file 【发布时间】:2015-11-11 11:04:55 【问题描述】:

好的,这是场景:

我使用设置 x-pingback 标头的 Wordpress。 我使用了缓存机制,它总是使用 mod_rewrite 为静态 html 文件提供服务。相信我,缓存会按照我描述的方式工作。

为什么我仍然看到设置了 x-pingback 标头?! WP 正在将该标题放在 php 中......但现在访问者从未点击过 PHP,而是为他们提供了一个静态 html 文件。

我在这里错过了什么?!

【问题讨论】:

你怎么知道 mod_rewrite 没有命中 Wordpress?我认为很明显,当 PHP 代码添加该标头并且您看到该标头时,请求通过了 PHP。 这就是我问这个问题的原因,你说得有道理。如果在 apache 设置中我写了一条规则来服务 www.example.com/post65 -> var/www/cache/post65.html 它不应该命中 WP 也不应该显示标题,对吗?跨度> 我不知道可以在文档根目录之外重写。您确定该请求不会以http://your-wordpress/var/www/cache/post56.html 结束,Wordpress 将在其中根据 slug 查找帖子吗?你能展示一下你拥有的相关 mod_rewrite 规则吗? 谢谢,我自己解决了……有点笨,但我没有意识到。 【参考方案1】:

感谢@CodeCaster 与我一起思考。

好的,问题是我的索引/主页没有被缓存。故意! 我知道这个页面会设置标题,但我不知道作为静态服务的页面带有它!

我打开了隐身窗口并检查了帖子的标题 - 它已经消失了。当我导航到家时,正如预期的那样,有标题。我现在再次刷新了帖子并繁荣 - 标题就在那里!

【讨论】:

以上是关于即使在提供静态文件时,仍然设置使用 PHP 设置的 HTTP 标头的主要内容,如果未能解决你的问题,请参考以下文章

Access 2003 FORMS:当我在运行时使用 VBA 设置时,即使我关闭然后打开,ListBox 的“RowSource”仍然存在

即使我在 react/redux 中使用受保护的路由设置了身份验证,我仍然会被注销?当我刷新页面时

即使所有设置都很好,Django也无法加载静态文件

即使设置为 false,使用条件渲染的 React Native 仍然尝试访问状态

静态文件在开发中提供但不在生产中提供

如何在静态 PHP 生成的 CSS / JS 文件上取消设置 Cookie?