domingo, 25 de agosto de 2013

Esta é minha casa mesmo ? :: Tirando o 'public' da url no Zend Framework 2

Quem já já experimentou o Zend ( tanto o 1 quanto o 2 ) sabe que toda a festa rola na pasta 'public' da raiz de seu projeto, já que o 'index.php' fica lá.

Isso é uma situação muito chata, porque primeiramente, é feio aquele 'public' na url, e segundo porque é mais seguro manter o 'index.php' dentro da pasta 'public'.

eu já tinha ensinado aqui no Bar do Zend como se procede para tirar o 'public' no caso do ZF1,  então agora é a vez de fazer o mesmo no ZF2.

Para isso, tenha certeza que seu seu servidor web esteja configurado com o module 'rewrite'. Uma googlada por ai você pode achar a configuração certa para seu caso.

Certificando que o servidor está ok, criamos um arquivo '.htaccess' na raiz do projeto:


RewriteEngine On
RewriteBase /meuprojetozf2
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

O endereço da raiz do projeto é aquele logo após seu domínio ( ex: http:///meusite.com/meuprojetozf2 ), ou após 'localhost' ( ex: http://localhost/meuprojetozf2 ) se estiver num servidor local. Caso o projeto esteja já na raiz do dominio, uma barra '/' já é suficiente.

Agora, criemos na raiz do projeto uma arquivo 'index.php' :

<?php
define('RUNNING_FROM_ROOT', true);
include 'public/index.php';

E pronto, pode acessar seu projeto e a sua url vai estar livre do 'public'.
Agora, um porém. Todos os arquivos que estão contidos na pasta 'public'  ( como os css, imagens e javascript ) deverão ser ter seus endereços acrecidos de 'public', pois para fins práticos, o aplicativo está rodando a partir da raiz, e não da pasta 'public'.

Então é isso, até a próxima.

Um comentário:

  1. Excelente blog, pena q tenha poucos posts, em pouco tempo li todas as páginas. Deveria postar mais coisas interessantes sobre zend 1 :)

    ResponderExcluir