symfony2 reescreve regras .htaccess app.php

Eu enviei meu projeto symfony2 para o server grove. A página principal carrega, mas todos os links estão quebrados. Eu tentei adicionar app.php ao endereço da web. Funcionou, mas:

Eu tenho rotas como esta:

www.something.com/app.php/something

Eu quero que eles sejam:

www.something.com/something.

Eu tenho lido, e devo colocar algumas regras de reescrita no .htaccess.

Eu encontrei estas regras, mas elas não parecem funcionar:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L]  

Tente isso no seu arquivo .htaccess (dentro do diretório web):

  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]  

Para melhorar a resposta do whistlergreg, adicionei uma linha para que a pasta dos pacotes não seja quebrada. Isso fará com que os resources externos, como imagens, não sejam quebrados.

  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/$1 [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]  

Você não habilitou o módulo de reescrita. Este código é executado se o mod_rewrite.c estiver habilitado. Você só deve ativar o mod_rewrite no apache2. http://www.unixmen.com/how-to-enable-and-disable-apache-modules/

Por exemplo no Ubuntu:

 sudo a2enmod rewrite sudo service apache2 restart 

Além disso, lembre-se de descomentar (se comentado) a configuração do apache:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Mac OS X

/private/etc/apache2/httpd.conf

Você pode tentar dar o caminho completo para seus ativos (URL completo). Eu tive o mesmo problema quando implantei meu primeiro aplicativo symfony

Meu diretório raiz (pasta public_html na maior parte do caso) arquivo .htaccess se parece com isso

 Options +FollowSymLinks +ExecCGI RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC] RewriteRule !^projectName/ /projectName/web/app.php/%{REQUEST_URI} [L,NC]