Magento Enterprise – Disable Full Page Cache Only for CMS Pages

cmsee-1.14.1event-observerfull-page-cachemagento-enterprise

For some reason I want to disable Full Page Cache for CMS pages including Home Page.
I have created my custom module for this but some reason it is not working.

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Custom_HeaderFix>
            <version>1.0.0</version>
        </Custom_HeaderFix>
    </modules>
    <global>
        <models>
            <headerFix>
                <class>Custom_HeaderFix_Model</class>
            </headerFix>
        </models>
    </global>
    <frontend>
        <events>
            <controller_action_predispatch_cms>
                <observers>
                    <headerCache>
                        <type>singleton</type>
                        <class>headerFix/observer</class>
                        <method>processPreDispatch</method>
                    </headerCache>
                </observers>
            </controller_action_predispatch_cms>
        </events>
    </frontend>
</config>

Observer.php

<?php

class Custom_HeaderFix_Model_Observer {

    public function processPreDispatch(Varien_Event_Observer $observer) {
        $action = $observer->getEvent()->getControllerAction();

        if ($action instanceof Mage_Cms_PageController) {
        $cache = Mage::app()->getCacheInstance();

        // Tell Magento to 'ban' the use of FPC for this request
        $cache->banUse('full_page');
        }
    }

}

My code is working on CMS pages but not for home page

Best Answer

If it works for all pages, except the home page, you should replace

if ($action instanceof Mage_Cms_PageController)

with

if ($action instanceof Mage_Cms_PageController
    || $action instanceof Mage_Cms_IndexController) 
Related Topic