Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1 2
Bonjour à tous !
Je viens de débuter avec le Zend Framework, gràce à ce tres bon tuto :
http://g-rossolini.developpez.com/tutor … e=sommaire
Il y est expliqué comment résoudre l'erreur suivante : aucune adresse ne fonctionne, sauf index. La solution est de vérifier la redirection dans la rewrite rule.
Eh bien mon problème porte sur le même sujet : je récupère une erreur 500 (pas de détail de l'erreur par contre) lorsque je rentre l'url racine de mon site (www.monsite.fr) sans rajouter "/index".
Apparament, le IndexController n'est pas appelé...
Si je rajoute "/index", je suis bien redirigé sur mon IndexController et la page s'affiche correctement.
Je suppose qu'il s'agit d'une erreur basique, mais étant donné que je ne suis pas habitué au MVC, je suis perdu et ne sais où chercher !!
J'ai besoin de votre aide !
Merci d'avance !
Edit : mon hébergeur m'a donné le message d'erreur affiché dans le errlog : "Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary"
Dernière modification par Bast (12-06-2007 00:20:33)
Hors ligne
Bonjour !
l'URL rewriting est-il correctement configuré dans ton .htaccess ? Je sais que j'ai galéré un moment avant de trouver le paramétrage qui collait avec la config de mon hébergeur.
Sinon c'est possible d'avoir un oeil sur ton bootstap (le fichier index.php) ?
Hors ligne
alors déjà l'arborescence :
monsite/
[plusieurs dossier pas importants]/
www/
sous-domaine/
monSousDomaine/
www/
application/
library/
public/
.htaccess
index.php
autreSousdomainePasImportant/
Zend Framework est installé dans monsite/sous-domaine/monSousDomaine/www/ library/
quand on tape l'url "www.monSousDomaine.monSite.fr" on tombe dans le dossier monsite/sous-domaine/monSousDomaine/www/ où est exécuté index.php (enfin il est SENSE etre exécuté... car pour l'instant je dois l'écrire en toutes lettres dnas l'url pour qu'il soit exécuté)
Voici le code de index.php :
<?php error_reporting(E_ALL|E_STRICT); date_default_timezone_set('Europe/Paris'); set_include_path('.' . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/models/' . PATH_SEPARATOR . get_include_path()); include "Zend/Loader.php"; Zend_Loader::loadClass('Zend_Controller_Front'); // setup controller $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); $frontController->setControllerDirectory('./application/controllers'); // run! $frontController->dispatch();
En fait c'est EXACTEMENT celui du tutoriel cité plus haut.
.htaccess, c'est aussi exactement celui du tutoriel.
Edit Philippe : code mis en forme
Dernière modification par philippe (07-06-2007 14:56:10)
Hors ligne
regarde le fichier de config pour Apache (httpd.conf)
il faut que il n'y a pas de '#' d'avant cette ligne:
LoadModule rewrite_module modules/mod_rewrite.so
comme habitude, apres de modifier le config, il faut redemmarer Apache
bonne chance!
Dernière modification par fizzbanana (07-06-2007 15:20:28)
Hors ligne
Le mod_rewrite est déjà activé. Le problème ne vient pas de là
Hors ligne
Bonjour,
Est-ce que tu peux nous envoyer ton .htaccess et regarder si il y a d'autres .htaccess dans les répertoires parents et nous les envoyer aussi.
A priori, je pense comme fizzbanana ou Melyandre que ça vient des rewrite rules. Je n'ai pas lu le tuto que tu utilises, mais potentiellement, tu peux avoir besoin d'adapter ton .htaccess.
A+, Philippe
Hors ligne
Merci de prendre mon cas en main !! ^^
monsite/www/sous-domaine/monSousDomaine/www/.htaccess
RewriteEngine on RewriteRule .* index.php php_flag magic_quotes_gpc off php_flag register_globals off
monsite/www/sous-domaine/monSousDomaine/www/application/.htaccess
deny from all
monsite/www/sous-domaine/monSousDomaine/www/library/.htaccess
deny from all
monsite/www/sous-domaine/monSousDomaine/www/public/
RewriteEngine off
Dernière modification par Bast (08-06-2007 09:42:12)
Hors ligne
hum... Je n'ai pas trop le temps de tester en ce moment, mais je dirais que tu boucles sur ta rewrite :
* tu rediriges vers index.php
* comme index.php vérifie ton .*, tu rediriges de nouveau vers index.php
Donc soit tu ajoutes un [L] à la fin de ta rewrite (quand une rewrite matche, il arrête ses traitements), soit tu ajoutes un code qui dit que si le fichier existe, on ne réécrit pas.
Bref pour moi ta rewrite devrait ressembler à :
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
Dis moi si ça marche,
A+, Philippe
Hors ligne
Je suis en cours en ce moment, et le serveur de l'école bloque les clients ftp. Je dois donc faire le test seulement ce soir...
Par contre je n'ai pas bien compris... est-ce que vous venez de m'expliquer que la rewrite rule redirige sur index.php, mais détecte sa propre redirection comme une url et se relance encore et encore ?
Si c'est ça, alors pourquoi dans le tuto tout est sensé fonctionner ?
Egalement, pourquoi lorsque je spécifie d'autres actions :
"[...]/index/test" avec evidemment IndexController contenant la fonction testAction())
ou bien tout simplement "[...]index"
ou encore "[...]index.php", cela fonctionne? Pourquoi dans ces cas là la rewrite rule ne boucle pas ?
En tout cas merci pour votre rapidité !
Hors ligne
Tête en l'air que je suis, j'avais oublié que j'avais aussi accès par webftp.
Philippe un GRAND MERCI. Tout fonctionne parfaitement.
Malheureusement je n'ai pas compris pourquoi.... mais merci quand même !!!
Hors ligne
J'apporte une précision, au cas ou, pour ceux qui ne sauraient pas, ZF fonctionne très bien avec le rewrite engine à OFF hein ;-)
L'url est un peu moins jolie, et la directive AcceptPathInfo doit être à On, mais ca fonctionne parfaitement.
Hors ligne
Que voulez vous dire par "moins joli" ?
En fait je ne comprends pas bien comment fonctionne le rewrite... ni AcceptPathInfo
Hors ligne
Il ne l'est qu'à moitié, car je vais utiliser par la suite le Zend Framework pour tous mes sites, et ils n'ont pas tous la même structure de dossiers... Je suppose que je devrai donc à nouveau modifier la rewrite rule... Mais si je n'ai pas compris, je ne pourrai pas le faire seul !
Hors ligne
Hum... dans ce cas, passe le message à Résolu, tu créeras un nouveau topic à ce moment
Pour les rewrite, quand j'aurai un peu de temps, je ferai des tests. Mais c'est sur que c'est pas le truc le plus simple d'apache !
Hors ligne
Ok merci !
Hors ligne
Finalement, problème non résolu !
Cette fois, le problème est inversé
ce qui fonctionne :
- www.monSousDomaine.monSite.fr
- www.monSousDomaine.monSite.fr/index
- www.monSousDomaine.monSite.fr/index.php
- www.monSousDomaine.monSite.fr/index/test (j'ai créé une action testAction dans IndexController)
Ce qui ne fonctionne pas :
- www.monSousDomaine.monSite.fr/cv (dans le même dossier que IndexController, j'ai créé CvController.php)
- toutes les url appelant autre chose que index ...
Je commence vraiment à perdre le nord
Hors ligne
S'il vous plait j'ai besoin d'aide
Hors ligne
Tu peux nous envoyer le message d'erreur renvoyé ?
(note : si les messages d'erreur ne remontent pas, il faut ajouter $controller->throwExceptions(true); dans ton index.php).
A+, Philippe
Hors ligne
Mon message d'erreur :
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary.
Hors ligne
Pardonnez moi d'être si insistant, mais cette fois j'ai vraiment le couteau sous la gorge... c'est un devoir à rendre et il me reste la journée de lundi pour le term... le commencer !! :'(
Dernière modification par Bast (11-06-2007 02:22:52)
Hors ligne
Bonjour,
As tu fait un essai avec
www.monSousDomaine.monSite.fr/Cv
(le C de cv en majuscule)
?
Hors ligne
Oui bien sûr. Toujours la même erreur
Hors ligne
Peux tu donner ton fichier .htaccess (pour ma part, l' erreur 500 etait toujours due à une mauvasie syntaxe de ce fichier. )
Le serveur est en local ou sur un mutualisé ?
Donne aussi les version de PHP et Apache stp.
Hors ligne
Tu peux aussi surveiller toutes les majuscules dans ton code ?
- dans ton CvController.php, c'est bien une classe CvController avec un C majuscule
- une action IndexAction avec un I majuscule
Sinon c'est bizarre ces redirections en boucle... tu as ajouté un code quelque part qui dit que quand le ZF ne trouve pas ses petits il va sur une page quelconque ? (un init, un prédispatch ou un truc du genre ?)
Philippe
Hors ligne
Pages: 1 2