首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Magento正在缓存404 URL,以便返回"200 OK“状态,而不是"404 not”。我怎么才能防止这件事?

Magento正在缓存404 URL,以便返回"200 OK“状态,而不是"404 not”。我怎么才能防止这件事?
EN

Stack Overflow用户
提问于 2013-03-08 02:49:23
回答 1查看 1.4K关注 0票数 0

我正在Apache (Debian)上运行带有APC缓存的MagentoEnterprise1.9。

如果我浏览到我的站点上一个不存在的URL,我会收到来自服务器的404响应,并且会收到我的404页面。但是,如果我再次访问相同的URL,这一次(以及以后的所有时间)我会从服务器收到一个"200 OK“状态,尽管URL仍然无效,404页仍在显示。

示例:

代码语言:javascript
运行
复制
$ curl -I http://www.example.com/some-nonexistent-URL
$ HTTP/1.1 404 Not Found

$ curl -I http://www.example.com/some-nonexistent-URL
$ HTTP/1.1 200 OK

我假设这是因为对该URL的重新定位以某种方式被缓存,因此服务器发送404页(!)的"200 OK“缓存版本。

我怎么才能阻止这一切?

EN

Stack Overflow用户

回答已采纳

发布于 2013-03-21 01:11:30

这是Magento的全页缓存错误。

我发现Magento检查是否存在一个名为NO_CACHE的cookie,所以在调用404操作(在我的例子中是/app/code/core/Mage/Cms/controllers/IndexController.php)之前,我只是将$_COOKE["NO_CACHE"] = true;放在了点上。

我还向404页面模板本身添加了一个cache-control: no-cache, must revalidate头,以及上面相同的cookie,以获得良好的效果。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15285860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档