quarta-feira, 10 de agosto de 2011

Ocultando index.php no symfony usando .htaccess

Configurando uma aplicação de terceiro num servidor, me deparei com o problema de que minha URL www.sitedeexemplo.com/pt_BR/ não funcionava, mas quando trocava para um www.sitedeexemplo.com/index.php/pt_BR/ , o sistema rodava normalmente.

O problema todo foi a falta do arquivo .htaccess no diretório /web/ da aplicação. Abaixo, segue o código existente no .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On


  # 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>


É necessário ressaltar que o arquivo /web/apps/frontend/config/settings.yml deve conter o seguinte trecho de código:

prod:
  .settings:
    no_script_name:  on


E ainda que o módulo mod_rewrite do Apache deve estar ativo.
Com isso, sua URL ficará mais limpa :)

Num próximo post irei mostrar como fazer para renomear da seguinte forma: www.sitedeexemplo.com/backend.php para simplesmente www.sitedeexemplo.com/admin/

É só.

Nenhum comentário:

Postar um comentário