Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour tout le monde !!!
J'ai un probleme, j'ai fait mon appli Zend avec différents modules.
Un default, un admin, et un troisieme , mymodule.
Mon soucis : faire que mon module mymodule est un nom de domaine a lui tout seul : www.mymodule.com
Je n'arrive pas a faire les redirection car apache demande un dossier physique :
/home/public/mymodule renvois une erreur 404...
Quelqu'un à une solution ? Est ce possible?
Merci bien de vos réponses !
Kei
Dernière modification par Kei (30-03-2010 14:49:24)
Hors ligne
Regarde ici Zend_Controller_Router_Route_Hostname
Tu devrais trouver ton bonheur.
Hors ligne
Merci! Par contre je comprend pas comment l'utiliser J'arrive pas a savoir si ca peu vraiment faire un truc
du genre www.mymodule.com et non mymodule.monsite.com
Je vais continuer de chercher merci en tt cas !
Hors ligne
Bon ben j'ai beau chercher je n'arrive pas à le mettre en place, je comprends le principe mais la doc est très très vague quant à la mise en place...
Si quelqu'un veut bien m'aider svp !
Merci d'avance!
Hors ligne
Dans ton Bootstrap, tu initialises le router :
$router = new Zend_Controller_Router_Rewrite(); $hostnameRoute = new Zend_Controller_Router_Route_Hostname( 'www.:module.com/:controller/:action' ); $plainPathRoute = new Zend_Controller_Router_Route_Static(''); $router->addRoute('default', $hostnameRoute->chain($plainPathRoute);
Je n'ai pas trop compris le principe de chainer … Et je ne sais pas du tout si cela va fonctionner
Hors ligne
Oui mais à ce moment la on pourrait s'attribuer n'importe quel nom de domaine... Il y a une config apache à établir?
Hors ligne
Comment ça tu peux t'attribuer des noms de domaine ?
Si Apache n'est pas configuré pour "capter" les domaines que tu veux utilisés, effectivement, ça ne fonctionnera pas.
Un exemple extra-lite de config Apache :
<VirtualHost *:80> ServerName www.domaine1.com ServerAlias www.domaine2.com DocumentRoot /var/www/monrepertoiresource/public </VirtualHost>
Tu aurais (en théorie) un module domaine1 et domaine2.
Hors ligne
Lol! Ah bah oui evidemment.... Bon j'ai compris bien le principe mais pour l'instant www.mymodule.com me renvois toujours sur www.default.com, comme s'il prend juste en compte l'alias sans le routage... donc je vais continuer de tester tout ca pour voir... Merci bien!
Hors ligne
Ta route "hostname" doit avoir son module de static (pas de :module) et tu places la valeur de module dans le tableau des paramètres de route
C'est la première chose qu'on voit dans le lien fourni par Blount
Hors ligne
D'accord... Mais je ne comprend toujours pas pourquoi il ne prend pas en compte mon route_rewrite...
J'ai essayé de l'initialisé dans le bootstrap, dans mon plugin de rewritting... J'ai fais des debugs, le $hostnameRoute est bien modifié avec la bonne adresse mais rien ne change... N'y a t'il pas quelque chose de précis a faire?
Si vous voulez que je mette mon code, n'hésitez pas à demander...
Hors ligne
Comment tu sais que ca n'est pas pris en compte ?
Hors ligne
Ben ca me redirige toujours sur mon module par default... quoi que je fasse...
si je tape www.mymodule.com => ca me renvoie sur mon module de base...
et si je tape www.mymodule.com/mymodule => la ca me renvoie au bon endroit... mais bon quel interet? ^^
Hors ligne
Bon alors la redirection marche bien, le
->chain($plainPathRoute)
était de trop je ne sais pas pourquoi j'ai pas exactement compris sa fonction...
Par contre il ne trouve pas le layout...... On ne résout jamais tout les problèmes d'un coup de toute façon.....
Hors ligne
Si je ne met pas le ->chain(), aucun ajout de css / script js etc... n'est pris en compte, il les charges à partir de www.mymodule.com/css/site.css ....
Je ne comprend vraiment pas d'ou ça vient...
Si quelqu'un repasse par la ! Merci d'avance a lui !
Hors ligne
Bon ben c'est bon le bon code pour rediriger vers le bon module c'est :
$frontcontroller = Zend_Controller_Front::getInstance(); $router = $frontcontroller->getRouter(); $hostnameRoute = new Zend_Controller_Router_Route_Hostname( 'www.mymodule.com', array('module'=>'mymodule') ); $router->addRoute('mymodule', $hostnameRoute);
Mon soucis était un problème que je n'avais pas vu dans la config d'apache... Il y avait un double rewriting qui faisait tout planter
Merci en tout cas a tout les deux pour m'avoir aidé!!
Hors ligne
Pages: 1