Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour, tout le monde, et oui encore un qui as un souci avec le htaccess
Tout d'abord mon htaccess :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.*$ index.php [NC,L] # The following rule tells Apache that if the requested filename # exists, simply serve it. RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] # The following rewrites all other queries to index.php. The # condition ensures that if you are using Apache aliases to do # mass virtual hosting, the base path will be prepended to # allow proper resolution of the index.php file; it will work # in non-aliased environments as well, providing a safe, one-size # fits all solution. RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$ RewriteRule ^(.*) - [E=BASE:%1] RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
Je suis en local sur ubuntu, et comme il s'agissait d'une installation de découverte, je n'ai pas fais de vhosts, j'obtiens donc une adresse de ce genre pour mon public : http://localhost/work/Zend/zf2/public/
Mais c'est la qu'arrive mon souci, dont je ne comprends pas la logique :
- Pour l'URL "http://localhost/work/Zend/zf2/public/" j'ai la page de bienvenue sur ZF.
- Pour l'URL "http://localhost/work/Zend/zf2/public/index.php", je n'ai pas cette page de bienvenue, ce qui est illogique, lors de l'index.php, j'ai l'erreur 404 mais dans le layout de ZF
- Pour une URL quelconque "http://localhost/work/Zend/zf2/public/toto", j'arrive sur l'erreur 404 classique d'apache.
Au niveau des config dans /etc/apache2/apache2.conf j'ai ajouté c'est ligne pour activer la réécriture
<ifModule mod_rewrite.c> RewriteEngine On </ifModule>
et dans mon /usr/share/php5/php.ini-development j'ai activé l'extension php_openssl.dll mais est ce vraiment ce php.ini qu'il fallait modifié... et pourquoi c'est un .ini-development?
merci d'avance
Hors ligne
Salut, d'une part si tu veux de l'aide ZF2 poste dans la bonne partie du forum. Non seulement tu l'auras plus rapidement mais ça permet aux utilisateurs d'éviter d'avoir à chercher dans tous le forum pour trouver une réponse puisqu'ici c'est la forum dédié au ZF1.
C'est normal ton problème, le point d'entrée de l'application c'est index.php qui est automatiquement exécuté quand tu arrives dans ton dossier public. Tout ce qui se trouve après "public" représente des routes du ZF2 donc :
- /
- toto
- tata
- titi
- index.php
- mon_super_accueil_de_la_mort
etc ...
Hors ligne
Je n'avais pas du tout vu que ce n'était que pour ZF1, je suis arrivé via google et je ne suis pas revenu jusqu'a l'index du forum... Est ce qu'un modérateur/adminsitrateur pourrait le replacer au bon endroit?
Mais si c'était normal pourquoi "/public/" qui appel index.php et "/public/index.php" ne me ressort pas le même résultat?
Et donc question qui en découle, comment faire pour que les routes fonctionnent, le htaccess n'est pas bon?
Hors ligne
C'est déplacé !
Tout simplement parce que le point d'entrée est public, par défaut tout serveur web bien configuré va lire automatiquement le fichier index.php ou index.html dans le dossier racine. C'est ce qu'il se passe dans le cas du ZF2 sauf qu'une fois le fichier index.php chargé (automatiquement du coup) le module MVC du ZF2 est initialisé ce qui fait que tout ce qui suit la racine est considéré comme une route.
Pour le .htaccess la doc officielle te donne le bon format donc tu as juste à le récupérer là dessus. De plus il est conseillé de faire un vhost !
Moi j'ai ça pour le miens ça semble être le même.
RewriteEngine On # The following rule tells Apache that if the requested filename # exists, simply serve it. RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] # The following rewrites all other queries to index.php. The # condition ensures that if you are using Apache aliases to do # mass virtual hosting, the base path will be prepended to # allow proper resolution of the index.php file; it will work # in non-aliased environments as well, providing a safe, one-size # fits all solution. RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$ RewriteRule ^(.*) - [E=BASE:%1] RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
Hors ligne
Merci pour le déplacement...
Ah Ok via le mécanisme ZF2, le fichier index.php, n'est pas chargé simplement comme on peut le faire via l'url, d'où le résultat différent.
pour le .htaccess c'est celui qui est créé par ZFTools mis à part ces 2 lignes que j'ai ajouté (trouvé sur un forum)
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.*$ index.php [NC,L]
mais avec ou sans ça ne fonctionne pas..
Je n'ai rien trouvé dans la doc officielle... je vais continuer à chercher
Concernant le vhosts je l'avait fait, mais comme ça ne fonctionnait pas, je suis revenu en arrière..
Dernière modification par blibsnake (04-03-2014 11:45:51)
Hors ligne
A priori c'est bon ça fonctionne...
Il semblerait que le AllowOverride n'était pas bien configuré dans mon apache2.conf
et quelques petites erreurs de frappes et le premier tutoriel fonctionne..
Merci Orkin
Hors ligne
Avec plaisir ! Pense à éditer ton message plutôt que faire un double post
Hors ligne