Este artigo trata do roteamento Laravel em instalações novas de projeto, levando em consideração um contexto muito específico, instalações novas do servidor Apache.

Em algum momento você vai iniciar um novo projeto com o recém instalado Laravel 5, após a chamada com composer:

   composer create-project laravel/laravel <nome-do-projeto> --prefer-dist

Todas as dependências baixadas e carregadas pelo composer, permissões acertadas nas pastas storage e bootstrap/cache, então, para iniciar o trabalho você faz a inserção de uma rota de testes e um controller para verificação, e eis que o erro 404 (File not found) é retornado.

Passei por este problema e comecei a procurar a causa, após verificar que as rotas estavam corretas com comando

php artisan route:list

comecei a pensar que o roteamento do Laravel 5 não funciona. Na verdade foi mais algo como: eu estou errando algo muito simples, não é possível que não funcione.

Depois de executar várias vezes o

composer dump-autoload

e verificar novamente as rotas, além de realizar pequenas alterações, tentei acessar a rota padrão que vem instalada para

/home

, e eis que ela também retornou o erro 404. Muito bem, indicativa que o problema não era meu código e sim uma possível configuração mal feita.



Solução para o Roteamento Laravel

Como eu havia inicialmente pensado, o problema era simples de resolver, e somente percebi qual era a causa após ler este post no Stackoverflow: Laravel routing does nor working.

Eu estou trabalhando com um computador novo, Linux Mint recém instalado, e ainda não havia feito todas as configurações do Apache.

Então, uma possível solução para resolver o problema de roteamento Laravel da versão 5.x é, primeiramente, configurar a sobrescrita de url no Apache, para que o arquivo .htaccess padrão possa funcionar. Para isso execute no terminal o comando

sudo a2enmod rewrite

, em seguida abra o arquivo de configuração que deve ser encontrado no caminho

/etc/apache2/apache2.conf

e encontre o seguinte trecho de código

<Directory /var/www/>
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
</Directory>

alterando a entrada “AllowOverride None” para “AllowOverride All”, assim você define que todos podem realizar a sobrescrita a partir do diretório raiz /var/www. Salve o arquivo e reinicie o Apache

sudo service apache2 restart

Boa programação com as rotas funcionando.


6 comentários

Robson de Jesus · junho 11, 2015 às 4:47 pm

Resolveu meu problema!!!!!!!!

    nunomazer · junho 11, 2015 às 5:13 pm

    Bom que ajudei, abraços Robson

Aercio · outubro 1, 2015 às 12:09 am

Muito Bom!!!

Luana · julho 10, 2016 às 3:59 am

Como eu resolveria esse problema no Windows? Já tentei desabilitar o rewrite_module do apache, mas não deu certo.

    nunomazer · julho 19, 2016 às 9:09 am

    Na verdade você precisa habilitar o module_rewrite. Já tentou abrir o arquivo de configuração e descomentar a linha que carrega a dll? Procure por uma linha parecida com “LoadModule rewrite_module /caminho/para/mod_rewrite.dll” .. no Linux existe uma pasta com um arquivo para configuração, não sei exatamente como está a estrutura em Windows, e também depende se você está usando um dos pacotes WAMP, XAMPP, EASYPHP etc

Laravel arrumando rotas - Sites e Sistemas PG · julho 1, 2016 às 3:34 pm

[…] Roteamento do Laravel 5 não funciona […]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Complete a fórmula para verificação * Time limit is exhausted. Please reload CAPTCHA.

Pin It on Pinterest

Share This

Share This

Share this post with your friends!