2010-09-28 8 views
0

J'ai une application symfony 1.4. Sur Windows AMP tout est bon. Mais sur Linux Apache2 j'ai un isseu:Problème de routage Symfony 1.4

Par exemple, j'ai déployé l'application sur myhost.

http://myhost/ - fonctionne à droite, mais http://myhost/module - ne fonctionne pas.

Mais dans j'utilise frontend_dev.php - tout est bon.

http://myhost/frontend_dev.php/module/ - fonctionne.

Le cache est propre. Et sur Windows AMP - tout est bon.

A ne pas avoir de changements de .htaccess et de paramètres dans apache.

Ajouté:

je la configuration suivante de .htaccess

options + FollowSymLinks + ExecCGI

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    # uncomment the following line, if you are having trouble 
    # getting no_script_name to work 
    RewriteBase/

    # we skip all files with .something 
    #RewriteCond %{REQUEST_URI} \..+$ 
    #RewriteCond %{REQUEST_URI} !\.html$ 
    #RewriteRule .* - [L] 

    # we check if the .html version is here (caching) 
    RewriteRule ^$ index.html [QSA] 
    RewriteRule ^([^.]+)$ $1.html [QSA] 
    RewriteCond %{REQUEST_FILENAME} !-f 

    # no, so we redirect to our front web controller 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

Répondre

2

Si elle fonctionne comme url/index.php/module, vous devez activer mod_rewrite pour votre vhost .

+0

Thx, mais activé dans .htaccess – Max

+2

Vous devez l'activer dans votre configuration apache pour pouvoir l'utiliser dans votre fichier .htaccess. Commentez les lignes dans le fichier .htaccess, et si vous obtenez une erreur de serveur interne, mod_rewrite est désactivé. – Maerlyn

1

Comme l'a dit Maerlyn, ce problème est généralement dû au fait que mod_rewrite n'est pas activé.

La meilleure façon de permettre mod_rewrite, est d'ajouter les lignes suivantes dans votre fichier .htaccess:

Options +FollowSymLinks 
RewriteEngine On 

Cela devrait résoudre vos problèmes de routage.

+2

Il a besoin d'une directive AllowOverride, mais je ne suis pas sûr, qui. Je finis habituellement en utilisant 'AllowOverride All'. – Maerlyn

+0

Maerlyn: Merci beaucoup! J'ai eu un problème similaire et 'AllowOverride All' l'a réparé parfaitement. – Gaurav

+0

Comme une autre note, il semble que 'AllowOverride FileInfo' est le remplacement crucial qui doit être autorisé pour que mod_rewrite fonctionne correctement. – Gaurav