symfony2 règles de réécriture.htaccess app.php

j'ai envoyé mon projet symfony2 à server grove. La page principale des charges, mais tous les liens sont rompus. J'ai essayé d'ajouter app.php à l'adresse web. Il a fait un travail, mais:

j'ai des routes comme celle-ci:

www.something.com/app.php/something

je veux:

www.something.com/something.

j'ai lu, et je devrais mettre quelques règles de réécriture sur le .htaccess.

j'ai trouvé ces règles, mais elles ne le font pas semblent fonctionner:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
43
demandé sur Stephan Muller 2012-06-22 06:39:22

5 réponses

Essayez ceci dans votre .fichier htaccess (à l'intérieur du répertoire web):

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^app_dev.php - [L]
    RewriteRule ^app.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    #RewriteRule ^(.*)$ /app.php [QSA,L]
    RewriteRule ^(.*)$ /app_dev.php [QSA,L]
</IfModule>
57
répondu greg 2014-03-14 16:17:39

pour améliorer la réponse de whistlergreg, j'ai ajouté une ligne pour que le dossier bundles ne soit pas cassé. Cela permettra de s'assurer des ressources externes telles que les images ne sont pas rompus.

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^/web/app_dev.php - [L]
    RewriteRule ^/web/app.php - [L]

    # Fix the bundles folder
    RewriteRule ^bundles/(.*)$ /web/bundles/  [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    # Change below before deploying to production
    #RewriteRule ^(.*)$ /web/app.php [QSA,L]
    RewriteRule ^(.*)$ /web/app_dev.php [QSA,L]
</IfModule>
23
répondu JimTheDev 2012-09-30 23:05:27

Vous n'avez pas activé le module de réécriture. Ce code est exécuté si mod_rewrite.c est activé. Vous devez seulement activer mod_rewrite dans apache2. http://www.unixmen.com/how-to-enable-and-disable-apache-modules/

par exemple dans Ubuntu:

sudo a2enmod rewrite
sudo service apache2 restart
3
répondu Akairis 2015-10-09 11:37:42

Aussi, ... rappelez-vous de décommenter (si commenté) la configuration d'apache:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

MacOsX

/private/etc/apache2/httpd.conf

0
répondu sensorario 2016-09-10 09:59:30

Vous pouvez essayer de donner le chemin complet de vos actifs(url complète). J'ai eu le même problème lorsque j'ai déployé ma première application symfony

Mon répertoire racine (dossier public_html dans la plupart des cas).fichier htaccess ressemble à ceci

Options +FollowSymLinks +ExecCGI

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteRule !^projectName/ /projectName/web/app.php/%{REQUEST_URI} [L,NC]
0
répondu kiran Mohan 2017-08-31 08:04:23