Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous!
Me revoilà avec un problème similaire (cf. http://www.z-f.fr/forum/viewtopic.php?id=95).
Je souhaiterais afficher une page via l'url suivante :
http://www.domaine.com/monsite/une-page/
Donc, ma question est: comment dois-je nommer mon fichier controller et la class?
UnePageController.php ?
Une-PageController.php ?
etc...
Merci pour vos futures réponses ^^
Dernière modification par Pieroket (23-04-2007 13:48:09)
Hors ligne
En fait, quand on tape : http://www.domaine.com/monsite/ l'IndexController est bien appellé avec la page d'accueil... mais si on rajoute une-page/ ou 'nimporte quoi apres l'URL, cela va toujours sur la page d'accueil
Hors ligne
Essayez avec un controlleur en un mot... Avec la version 0.9.0 (je n'ai pas essayé après), il y avait un bug quand on mettait une majuscule à l'intérieur d'un controller :
* http://monsite/monCtr/toto : ne marchait pas (à cause de la majuscule "C")
* http://monsite/monctr/toto : marche et appelle MonctrController.php
J'ai pas réessayé depuis, mais ça ressemble à ça votre truc...
Hors ligne
Cela a déjà été essayé...
En fait on a essayé un paquet de truc.
Notre site marche ainsi (en local, sous Windows) -> http://www.domaine.com/monsite/:controller/:action/...
En local -> http://localhost/monsite/test/ : renvoye une erreur comme quoi la route n'existe pas...
Sur le net (ovh, sous Linux) -> http://www.domaine.com/monsite/test/ : renvoi sur la page d'accueil de l'IndexController avec l'action par default (indexAction() )
Bien entendu, on pense avoir résolu les histoires de base URL... (http://www.z-f.fr/forum/viewtopic.php?id=95) puisque là page d'acccueil est affiché...
Dernière modification par Mr.MoOx (20-04-2007 15:55:02)
Hors ligne
/line-items/ or /line.items/; both will camelCase properly and look
for LineItemsController.
/line_items/ will look for Line_ItemsController, btw. /LineItems/ and
/lineitems/ will both look for LineitemsController
dixit le guru Matthew Weier O'Phinney
fred
Hors ligne
Sur le net (ovh, sous Linux) -> http://www.domaine.com/monsite/test/ : renvoi sur la page d'accueil de l'IndexController avec l'action par default (indexAction() )
C'est bizarre, j'imaginais que ça devait arriver sur IndexAction du controlleur TestController...
http://framework.zend.com/roadmap/future/ Controller: roadmap Action : future http://framework.zend.com/roadmap/ Controller: roadmap Action : index http://framework.zend.com/ Controller: index Action : index
Ces règles ont toujours fonctionné pour moi. Vous êtes surs de ne pas avoir un controller Test ?
Dernière modification par fred wolf (20-04-2007 16:29:11)
Hors ligne
C'est exactement ça le problème Fred!
N'importe quoi renvoie sur l' IndexController.php ...
Hors ligne
Alors là, je dirais que vous avez un problème avec le .htaccess si vous en avez un..
Hors ligne
Est-ce que vous pouvez nous envoyer votre .htaccess et le code d'init de vos controlleurs et routeurs ?
Hors ligne
RewriteEngine on RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1
le voilou le .htaccess!
Hors ligne
RewriteEngine on
RewriteRule (.*) index.php
essaye ça
Hors ligne
Le fait est que OVH bride les capacités du htaccess en fonction des directives que tu choisis. Donc parfois ce qui fonctionne en local ne fonctionne pas chez l'hébergeur. Par exemple ceci ne fonctionne pas :
php_flag magic_quotes_gpc off
php_flag register_globals off
Hors ligne
Aucun résultat... C'est vraiment étrange!
Je ne suis pas sûr que cela vienne des règles de réécriture.
Hors ligne
Elle est bizarre ta réécriture. Si tu es dans le sous répertoire /monsite/ de ton domaine, (http://www.domaine.com/monsite/), il faut ajouter /monsite/ avant ton index.php.
Ensuite il ne faut rien ajouter après le index.php (vire le /$1) sinon il va chercher un fichier qui n'existe pas, ensuite comme tu n'as pas de [L] il continue à réécrire... je n'ose pas trop savoir ce qu'il fait
Essaye ce code. (par contre, je ne suis pas très à l'aise avec les .htaccess, je joue plus avec les httpd.conf, donc je ne sais pas trop comment s'appliquent les rewritebase...)
RewriteEngine on RewriteBase /monsite/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /monsite/index.php [L]
A+, Philippe
Hors ligne
A mon avis, le problème ne vient pas de là, car on arrive à avoir la page d'accueil c'est donc que l'on arrive forcément sur l'index.php où Zend prend le relais... C'est donc un problème du à Zend (et peut être au fait que ce soit sur linux, peut être)...
On dirait que Zend zappe la gestion des routes. Cela vient peut être d'une erreur de notre part mais c'est étonnant que cela marche en local (sous windows je le répète)
Dernière modification par Mr.MoOx (20-04-2007 18:13:56)
Hors ligne
A priori, quand je déploies un truc sous unix et que ça marchait sous windows c'est :
* un problème de majuscule
* un problème de réécriture apache
* éventuellement un problème de constante (genre le PATH_SEPARATOR)
Eventuellement balance nous ton fichier d'init avec la définition du controller et des routes, mais perso, je persiste à penser que ça vient des réécritures apache... (et je ne suis pas une tête de mule... enfin si, un peu )
Ah si, aussi, fais un echo de $_SERVER["REQUEST_URI"] dans ton fichier d'init, juste pour voir...
A+, Phil
Dernière modification par philippe (23-04-2007 11:55:06)
Hors ligne
OUha. On est des plots (enfin Pieroket )
En fait, cela venait du problème de $controller->setBaseUrl();
Nous avions le code suivant
define("BASE_PATH","/home/domaine/www/"); define("BASE_URL","vl/"); $controller->setBaseUrl(BASE_PATH.BASE_URL);
Et en fait, il nous fallait changer la dernière ligne par $controller->setBaseUrl('/'.BASE_URL);
Nous pensions qu'il fallait mettre le même chemin que pour les includes_path ...
Désolé d'un post si long pour un erreur si bête. Pourtant on croyais avoir tout essayé... M'enfin si ça marchais pas c'est qu'il y'avait une raison... Merci quand même à tous
Hors ligne
Pages: 1