Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Salut à tous,
Est-ce possible d'utiliser le Routeur de ZF sans mod_rewrite. Ça ne semble pas traité dans la doc officielle. J'aimerai qu'il se contente de REQUEST_URI. Avez-vous une idée ?
Cordialement,
Étienne
Hors ligne
Bonjour,
Si tu n'as pas envie d'attendre, tu peux tenter la redirection par page d'erreur. C'est un mécanisme assez souvent utilisé comme alternative au mod_rewrite, c'est le cas par exemple dans le moteur templeet (cf linuxfr.org). Le principe est simple, l'index.php devient la page d'erreur, toutes requêtes ne correspondant pas à une ressource existante passera donc par lui. Je n'ai jamais utilisé cette méthode avec le routeur de ZF.
Le .htaccess :
ErrorDocument 404 /index.php
Pour prendre en charge les requêtes pointant vers les répertoires, il faut ajouter :
Options -Indexes ErrorDocument 500 /index.php
Cette solution n'est vraiment à utiliser que lorsque le mod_rewrite est indisponible (c'est le cas pour Free), elle n'apporte que des inconvénients mais elle peut dépanner.
Voici certains de ces inconvénients :
- La variable QUERY_STRING n'est pas définie, sa valeur se retrouve par contre dans un REDIRECT_QUERY_STRING. D'après ce que j'ai vu, le Zend_Controller_Request_Http construit manuellement la variable _GET à partir du REQUEST_URI (par parse_str), les paramètres doivent donc être correctement récupérés.
- Le plus dur : les paramètres POST sont perdus. La requête est transformé en GET pendant la redirection. Il existe un moyen de contourner ce problème mais ce n'est pas transparent. Si ça t'intéresse, je pourrai la détailler.
En esperant que ça te dépanne.
A bientôt,
PS : En passant, bonjour à tous, c'est ma première intervention ici.
Dernière modification par Lez (25-06-2007 10:34:05)
Hors ligne
Merci Lez,
Bienvenue à toi (aussi) !
C'est très intéressant, mais je me souviens des problème de "redirection". Je crois qu'il faut aussi redéfinir le code de retour HTTP à 200.
Cordialement,
Étienne.
Hors ligne
Si AcceptPathInfo est à On, alors vous pouvez utiliser ZF sans mod_rewrite.
Le BaseURL sera calculé comme domaine.com/monapp/index.php/
vous accederez à vos controleurs comme ca : domaine.com/monapp/index.php/module/controleur/action
au lieu de domaine.com/monapp/module/controleur/action
En théorie, le frontcontroler le detecte tout seul ( j'ai déja essayé ). C'est un peu plus la galère ensuite concernant les vues, car le baseUrl ne représente pas un dossier réel ( d'où la necessité qu'Apache l'interprète correctement, via AcceptPathInfo On
Hors ligne
Pages: 1