Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Je ne trouve pas d'exemple qui explique comment rediriger l'url qui contient un controlleur ou une action inconnu
exemple monsite.fr/controlleurinconnu --> rediriger vers page xx
exemple monsite.fr/index/actioninconnu --> rediriger vers page xx
Merci
Alban
Dernière modification par ami (28-03-2007 12:07:17)
Hors ligne
Bonjour,
Si ton action n'existe pas, tu peux ajouter dans ton controller un fonction __call. Ici elle redirige vers ton indexAction :
public function __call($method, $args) { $this->_forward("index"); }
Si ton controller n'existe pas, tu peux intercepter l'exception renvoyée par ton dispatch
try { $controller->dispatch(); } catch (Zend_Controller_Dispatcher_Exception $e) { header("Location: /") }
Cordialement, Philippe
Hors ligne
Pour des questions de référencement il peut être intéressant dans le cas d'un controlleur ou d'une action qui n'existe pas d'ajouter dans les entêtes HTTP le code signalant une erreur 404.
Hors ligne
Merci pour la détection d'action inconnu (j'ai testé et ça fonctionne très bien)
Mais a propos du controlleur inconnu (dans le fichier index.php), il faut ajouter ';' sinon erreur php.
header("Location: /");
et ca fonctionne
Il y a t'il moyen de connaitre le nom du répertoire où se trouve index.php ( et corriger header ) ?
header("Location: /".monrepertoire_ou_se_trouve_index_php);
Merci
Alban
Hors ligne
pour avoir l'adresse de base tu peux utiliser
$front->getBaseUrl();
Hors ligne
Pour l'erreur 404, il faut mettre dans ton script un truc du genre (avant d'envoyer quoique ce soit vers le navigateur) :
header("Status: 404 Not Found", false, 404);
Hors ligne
Pages: 1