La manière la plus succincte de résumer le problème à la main:Symfony 1.4 problèmes de routage que lorsque vous utilisez index.php et mod_rewrite
développement est terminé, et tout a été exécuté sur frontend_dev.php au cours du développement et de test
Cela signifie que toutes les URL sont les suivants: server.com/frontend_dev.php/module/action/parm
Le passage à la production des moyens de commutation environnements, et thusly utilisant inde x.php à la place
server.com/index.php/module/action/parmUne partie de mise en production utilise mod_rewrite sous Apache2 pour faire la partie de l'URL « index.php » Vanish, mais toujours fonctionner
server.com/module/action/parm est toujours dirigé contre index.phples URL apparaissent en effet w/o la partie index.php, mais le routage symfony est maintenant se plaindre:
c.-à-d. Server.com/goals qui route vers les objectifs/index
- parfaitement bien à l'aide frontend_dev.php ou index.php comme contrôleur explicite
server.com/index.php/goals
- en utilisant aucun contrôleur explicite (via rewrite):
[Mar Déc 14 12:59:51 2010] [error] [client 75.16.181.113] module vide et/ou action après l'analyse de l'URL "/ objectifs /" (/)
J'ai vérifié la réécriture est en effet routage à index.php en changeant la réécriture à quelque chose qui n'existe pas:
[Mar 14 décembre 2010 13:05:43] [error] [client 75.16.181.113] script '/opt/www/projects/adam/web/index2.php' introuvable ou incapable de stat
J'ai essayé de rediriger à frontend_dev.php, mais seulement suis fourni avec plus d'informations de débogage de symfony, dont aucune n'est utile:
404 | Introuvable sfError404Exception Module vide et/ou action après l'analyse de l'URL "/ goals /" (/).
pile trace 1. à() en ligne SF_SYMFONY_LIB_DIR/contrôleur/sfFrontWebController.class.php 44 ...
2. à sfFrontWebController-> dispatch() dans la ligne SF_SYMFONY_LIB_DIR/util/sfContext.class.php 170. ..
3. à sfContext-> dispatch() dans SF_ROOT_DIR/web/ligne frontend_dev.php 13 ...
J'ai essayé l'aide de l'option RewriteBase dans .htaccess, mais cela ne suffit pas , ni changer le vrai/faux dans la ligne de configuration des contrôleurs
J'espère que cela fournira s assez pour comprendre pourquoi nous sommes confus, et capable de nous diriger vers une résolution.
Voici le courant.htaccess et index/lignes de configuration frontend
index.php:
configuration $ = ProjectConfiguration :: getApplicationConfiguration ('frontend', 'prod', false);
frontend_dev.php:
configuration $ = ProjectConfiguration :: getApplicationConfiguration ('frontend', 'dev', true);
.htaccess:
RewriteEngine On
# Décommentez la ligne suivante, si vous rencontrez des problèmes # obtenir no_script_name travailler #RewriteBase/
# nous sautons tous fichiers avec .quelquechose #RewriteCond% {REQUEST_URI} .. + $ #RewriteCond% {REQUEST_URI}! .html $ #RewriteRule * -. ([. ^] +) [L]
de # on vérifie si la version .html est ici (mise en cache) RewriteRule^$ index.html [QSA] RewriteRule^$ $ 1.html [QSA] RewriteCond% {REQUEST_FILENAME}! -f
# pas, donc nous rediriger vers notre contrôleur de front RewriteRule^(. *) index.php $ [QSA, L]
Il semble étrange que symfony se plaint d'une route introuvable lors de la réécriture correcte de la requête - Avez-vous essayé de vider la configuration de l'itinéraire directement dans votre navigateur via index.php? Et effacer le cache manuellement, peut-être? Aussi, essayez de réécrire votre index2.php et faites-le imprimer la requête. – cvaldemar
Pourriez-vous poster votre routing.yml? – Vojta