Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde a todos,
estou trabalhando com zf2, e estou com um problema bem chato relacionado às rotas, a minha app só funciona com a rota "/"(denominada home).
quando eu coloco rotas literais "/adm", "/qualquercoisa" simplesmente eu recebo um erro:
Not FoundThe requested URL /a was not found on this server.
adiantando o que algumas pessoas possam perguntar:
eu registro os meus controllers,
o httaccess está funcionando(ate pq eu já uso a rota "/")
alguém já passou por coisa do tipo?
valeu pessoal.
application.conf.php
[inline]'modules' => array(
'Adm',module.conf.php
[inline]
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Adm\Controller\Index',
'action' => 'index',
),
),
),
'uses-home' => array(
'type' => 'Literal',
'options' => array(
'route' => '/users',
'defaults' => array(
'controller' => 'Adm\Controller\Index',
'action' => 'index',
),
),
),
),
),
'controllers' => array(
'invokables' => array(
'Adm\Controller\Index' => 'Adm\Controller\IndexController',
),
),
[/inline]
apenas a 1ª rota funciona
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
A primeira coisa a fazer é arrumar esse virtual host no apache. Com AllowOverride None o ele vai ignorar o .htaccess veja o exemplo do Getting started para ter uma noção melhor:
<VirtualHost *:80>
ServerName zf2-tutorial.localhost
DocumentRoot /path/to/zf2-tutorial/public
SetEnv APPLICATION_ENV "development"
<Directory /path/to/zf2-tutorial/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>foi eu já mudei, mas me diz pq a rota "/" funcinava?
pq essa rota estava ok, então eu achava que o mod_rewrite tava carregado.
extranho.
mas ainda não funcionou, está com outro erro,
Raoni, valeu pela ajuda...
foi eu já mudei, mas me diz pq a rota "/" funcinava?
Pois é onde esta o index da sua aplicação para receber a requisição. Em "/adm", "/qualquercoisa" não ha arquivo nenhum por isso o .htaccess precisa redirecionar todas as requisições para o index.
humm, ok.
agora está tudo funcionando perfeitamente.
muito obrigado pela ajuda.
Poste o código. O mod_rewrite esta ativado no apache? geralmente quando o zend não captura um erro 404 e aparece a página padrão do browser é porque esqueci de ativar o mod_rewrite.