Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour tout le monde.
Je suis actuellement train de développer une application ZF en modulaire. Pour le moment, j'ai 3 modules : Default, Forum, BackOffice.
Mon problème, c'est qu'hormis le module Default et son IndexController, je n'arrive pas à accéder à autre chose de l'appli'.
Par exemple, j'ai developpé un autre Controller, dans lequel il y a une action creercompteAction(), qui appelle un formulaire etc.
Et dans l'action index de mon IndexController, j'ai mis une redirection pour arriver directement au formulaire d'inscription. Voici les deux codes essayés :
1-
$this->_redirect($this->view->url(array( 'module' => 'default', 'controller' => 'dresseur', 'action' => 'creercompte' ), null, true));
2-
$this->_redirect('/default/dresseur/creercompte');
Dans les deux cas, le vanigateur me dit qu'il n'a pas trouvé la page...
Est-ce qu'il y aurait quelque chose que j'ai mal tapé dans ma redirection ? Ou il manque une configuration dans l'appli' ? Parce que même si je tape à la main, ça me dit que la page n'existe pas.
Voici mon application.ini :
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 phpSettings.date.timezone = "Europe/Paris" ; Include path includePaths.library = APPLICATION_PATH "/../library" ; Bootstrap bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" ; Front controller resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.params.displayExceptions = 0 ; chargement du plugin Zend_Application_Resource_Modules resources.modules[] = resources.modules.backoffice = APLLICATION_PATH "/modules/backoffice" resources.modules.forum = APLLICATION_PATH "/modules/forum" ; Layouts resources.layout.layout = "layout" resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" ; Views resources.view.encoding = "UTF-8" ; connexion à une base de données resources.db.adapter = "" resources.db.params.host = "" resources.db.params.username = "" resources.db.params.password = "" resources.db.params.dbname = "" resources.db.isDefaultTableAdapter = true [staging : production] [testing : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.frontController.params.displayExceptions = 1
NB : quand je lance mon appli', j'arrive sur une URL du type : www.monsiteweb/public/
Je ne sais pas si ça change quelque chose, mais je précise que je suis dans le répertoire public/ pour afficher mon site ^^
Merci d'avance pour vos réponses.
Dernière modification par DarkSeiryu (24-11-2010 16:02:38)
Hors ligne
Je vous ajoute l'arborescence du projet :
Est-ce que le nom du controlleur est bon :
backoffice/kaodeController.php
-> class IndexController extends Zend_Controller_Action
ou est-ce que ça devrait être
-> class Backoffice_IndexController extends Zend_Controller_Action
Est-il nécessaire de mettre Default_Model_Dresseur
Aucun namspace n'est définit, est-ce important ?
Dernière modification par DarkSeiryu (23-11-2010 18:05:43)
Hors ligne
Tu as un htaccess pour rediriger toutes les requêtes vers ton Index?
Hors ligne
Oui. Il se situe dans public/.
SetEnv APPLICATION_ENV development RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
Hors ligne
Bon ben apparemment, mon problème vient de mon serveur d'hébergement. Surement le mod_rewrite et le AllowOverride qui sont mal configurés.
Et comme je ne peux pas y accéder, je l'ai dans l'os \o/
Merci quand même !
Hors ligne
directive rewriteBase .. http://httpd.apache.org/docs/current/mo … write.html
Hors ligne
www.monsiteweb/public/
donc ton site n'est pas à la racine de ton site mais dans un dossier de ton site.
$this->_redirect('/default/dresseur/creercompte');
Donc ce n'est pas dans "/public", donc le .htaccess qui est dans "/public" n'est pas consulté.
Solutions au choix :
1) mettre un .htaccess à la racine de ton site web pour rajouter "/public" juste après le nom de domaine dans toutes les URL reçu par le serveur.
2) déplacer tout le contenu de "/public" dans "/" et corriger les liens relatifs qui sont faussé par ce changement
Hors ligne
ok merci omega2. J'vais me faire un .htaccess à la racine du site.
Hors ligne
Pages: 1