Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1 2
C'est un serveur distant, mutualisé, et il s'agit d'un sous-domaine de mon site général (futur site)
Voici le lien pour le site que j'essaye de faire avec ZF :
http://docannonces.econtacts.fr.nf
Tout fonctionne bien concernant l'appel explicite ou implicite de IndexController
Mais il y a aussi CvController par exemple (même dossier que IndexController) et la erreur 500
Le .htaccess :
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] php_flag magic_quotes_gpc off php_flag register_globals off
Hors ligne
Peux tu nous donner une copie de la fin de ton fichier log d'apache, là on devrait trouver la réponde (au moins la cause) de ton erreur.
Hors ligne
modifie un peu ton htaccess comme ceci :
Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] php_flag magic_quotes_gpc off php_flag register_globals off
Hors ligne
C'est modifié.
CvController.php existe bien, il est dans le meme dossier que IndexController.php
Pourtant, http://docannonces.econtacts.fr.nf/cv me renvoie cette erreur :
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller class ("CvController")' in /var/www/e/econtacts.fr.nf/sous-domaine/docannonces.econtacts.fr.nf/www/library/Zend/Controller/Dispatcher/Standard.php:271 Stack trace: #0[...]
Peut-être que CvController doit se trouver ailleurs? Comme les vues, il faut qu'elles soient dans un dossier à leur nom. C'est pareil pour les controleurs ?
Dernière modification par Bast (11-06-2007 12:41:42)
Hors ligne
Là c'est plus une erreur 500 !!
Normalement, tu doit avoir ce code dans le fichier ./application/controllers/CvController.php
/* ... */ class CvController extends Zend_Controller_Action { /*........*/ }
L'erreur que tu as n'est pas qu'il na pas trouvé le controlleur mais qu'il y a un problème sur ta class CvController
Fait un test tu verras la différence de message http://docannonces.econtacts.fr.nf/zzzz
Dernière modification par golivier (11-06-2007 14:00:29)
Hors ligne
Ok j'ai trouvé une erreur Ô combier honteuse.....
Au lieu d'écrire "class CvController extends blabla"... j'avais réécrit le même code que dans IndexController, à savoir "class IndexController extends..."
Je suis actuellement en plein examen de gestion de projet, et donc peu de temps pour faire des tests. mais la correction de ce code là m'a permis d'afficher avec succes l'action "test" du controleur CvController.
Je ne crie pas victoire trop tôt (qui sait...) mais ça m'a l'air d'être bon.
La confirmation ce soir (vers 20h !)
Merci beaucoup de vous occuper de mon incompétence !!!
Hors ligne
Alors alors !!!
A priori tout roule bien ^^
Et ce soir ô miracle, je trouve enfin une réponse de mon professeur.
Voila ce qu'il me dit (entre autres) à propos du .htaccess
[citation]
[Il faut] avoir dans le repertoire de son application ou dans document root un
fichier .htaccess contenant les lignes :
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
[/citation]
(et apparament pour lui, ça suffit ce .htaccess ....)
Cela a-t-il un quelconque rapport avec le .htaccess que vous m'avez proposé?
Y a-t-il des différences?
Lui est en train de me conseiller sans savoir que j'héberge l'appli dans un sous-demaine de mon site...
Bref j'hésite à toucher quelque chose, maintenant que ça fonctionne....
Dernière modification par Bast (11-06-2007 21:53:42)
Hors ligne
Dans ma version, les 2 rewrite cond servent à dire : quand le fichier existe, on ne passe pas par index.php. Ca évite d'être redirigé vers index.php quand une page demande une image gif par exemple.
La version de ton prof permet de dire : quand c'est un fichier gif, jpg, png, css... on ne redirige pas vers index.php. Par contre, si on demande un fichier toto.php qui existe, la rewrite de ton prof redirige quand même vers index.php (et n'appelle pas toto.php).
Bref, les 2 versions servent à la même chose à ce niveau à quelques détails près. Les 2 versions se défendent.
Pour le [L] il faudra que je refouille dans la doc apache pour voir ce que ça veut dire, mais manifestement, j'ai du te dire un truc faux dans un message précédent...
Note : si tu veux déplacer ton code dans un sous répertoire, tu auras peut-être à changer ta rewrite et tu devras sans doute ajouter un controller->setBaseUrl("/sousRep/") quelque part.
A+, Philippe
Hors ligne
Ok j'avais un doute !
Pour le setBaseUrl, à force de recherches, j'ai fini par le savoir.
Pour la rewrite, je ne le savais pas car en fait je ne sais pas quel dossier est considéré comme racine par apache. Le dossier courant de la rewrite? Mais dans ce cas si je déplace l'appli, je déplace le .htaccess contenant la rewrite... Non décidément, j'ai du mal avec la conf apache :p
Hors ligne
salut.
le structure de mon appli est comme ça:
zf_tutorial .htaccess index.php application controllers models views
j'utilise le meme .htaccess de ton Prof, (le .htacces qui est dans le meme niveau de le dossier application)
RewriteEngine on RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php php_flag magic_quotes_gpc off php_flag register_globals off
en fin, un petit peut de mon index.php
... define("BASE_URL", "/zf_tutorial/"); ... // setup controller $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); $frontController->setControllerDirectory('./application/controllers'); $frontController->setBaseUrl(BASE_URL); // si le controller demandée n'existe pas, on utilise le default try { $frontController->dispatch(); } catch (Zend_Controller_Dispatcher_Exception $e) { header("Location: " . BASE_URL); }
pour moi, ça marche trés bien.
bonne chance.
Hors ligne
merci
Hors ligne
Pages: 1 2