Quando você instala o ZF2 automaticamente você terá o módulo Application definido por padrão, e se você desejar requisitar os URLs, por exemplo:
http://site.com/index/index
http://site.com/index
Você vai dar com os burros n’água, pois por padrão ele vem configurado para rodar a rota para home a partir do módulo Application, e quaisquer outras chamadas para o controlador e as ações retornarão a página de erro 404. É preciso modificar as configurações da rota home.
Uma das necessidades mais básicas de quem começa a trabalhar com o ZF2 é entender como funciona o sistema de configurações de rotas.
Diferentemente do que tínhamos no ZF1, hoje o ZF2 retorna um array através do arquivo config/module.config.php e a princípio pode parecer meio confuso, mas com a prática ele vai ficando mais óbvio e fácil.
Neste arquivo informamos ao Zend como ele deverá se comportar quando um URL é requisitado e qual módulo/controlador/ação deverá chamar.
Bom, o interesse é demonstrar como remover o módulo da URL e não me prenderei aos detalhes de como funciona o sistema de rotas.
No arquivo atual temos:
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
),
Troque por:
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*'
),
'defaults' => array(
'action' => 'index',
'__NAMESPACE__' => 'Application\Controller'
)
)
)
)
),
E tudo voltará a funcionar como desejado.
OBS.: Você poderá utilizar qualquer módulo.
Uma resposta em “[Zend Framework 2] – Remover módulo do URL”
Olá Gilberto, poderia me ajuda
Sou iniciante em zf2 e to tetando criar uma rota, por exemplo que ficasse assim:
http://www.meusite.com.br/departamento/1/2/informatica/celulares
poderia me ajuda como eu criou esse rota ?