Reindirizzamento da Observer Not Funziona (FullPage Cache + APC attivato)
-
30-10-2019 - |
Domanda
Sto cercando di reindirizzare all'URL personalizzato se un certo URL è abbinato usando l'evento: controller_action_predispatch
A> Evento di registrazione: controller_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> Implementazione del modello Observer
<?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;
}
}
}
Il codice sopra funziona bene in LocalHost ma non sul server live in cui è attiva la cache a pagina intera + la memorizzazione nella cache APC (Magento EE 1.13).
Cosa mi manca, qualcosa deve essere controllato in caso di cache a pagina intera + APC attivato?
Qualsiasi aiuto è apprezzato.
MODIFICARE
Il problema del reindirizzamento è solo per l'errore 404. Se provo a reindirizzare una pagina non esistente (cioè 404) su una pagina valida, il reindirizzamento non funziona.
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange