我正在Apache (Debian)上运行带有APC缓存的MagentoEnterprise1.9。
如果我浏览到我的站点上一个不存在的URL,我会收到来自服务器的404响应,并且会收到我的404页面。但是,如果我再次访问相同的URL,这一次(以及以后的所有时间)我会从服务器收到一个"200 OK“状态,尽管URL仍然无效,404页仍在显示。
示例:
$ 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“缓存版本。
我怎么才能阻止这一切?
发布于 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,以获得良好的效果。
https://stackoverflow.com/questions/15285860
复制相似问题