Question

J'essaie de rediriger vers une URL personnalisée si une certaine URL est appariée à l'aide de l'événement: controller_action_predispatch

A> Événement d'enregistrement: contrôleur_action_predispatch

<frontend>
    <events>
        <controller_action_predispatch>
            <observers>
                <redirect_controller_action_predispatch>
                    <class>redirect/observer</class>
                    <method>controllerActionPredispatch</method>
                </redirect_controller_action_predispatch>
            </observers>
        </controller_action_predispatch>
    </events>
</frontend>

B> Implémentation du modèle d'observateur

<?php
class MagePsycho_Redirect_Model_Observer
{
    public function controllerActionPredispatch(Varien_Event_Observer $observer)
    {
        $action         = $observer->getControllerAction();
        $request        = $action->getRequest();
        $requestUrl     = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $request->getRequestUri();

        if (stripos($requestUrl, '/' . 'old-404-url-key') !== false) {
            $redirectUrl = Mage::getUrl('new-url-key');
            Mage::log('redirect-matched::' . $redirectUrl);
            $action->getResponse()->setRedirect($redirectUrl, 301);
            $action->getRequest()->setDispatched(true);
            return;
        }
    }
}

Le code ci-dessus fonctionne bien dans localhost mais pas sur le serveur en direct où le cache complet de la page + APC est activé (Magento EE 1.13).

De quoi me manque-t-il, tout doit être vérifié en cas de cache pleine page + APC activé?

Toute aide est appréciée.

ÉDITER
Le problème de redirection est uniquement pour 404 erreurs. Si j'essaie de rediriger une page non existante (IE 404 page) vers une page valide, la redirection ne fonctionne pas.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top