Pular para o conteúdo
Início » Laravel » Roteamento no Laravel não funciona

Roteamento no Laravel não funciona

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

Roteiro do problema

Em algum momento você vai iniciar um novo projeto com o recém instalado projeto com o framework Laravel, após executar o comando padrão para criar um novo projeto 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 usando o artisan na linha de comando:

php artisan route:list

É difícil de verificar o problema pois a listagem de rotas está correta. Então vem o auto questionamento: eu estou errando algo muito simples, não é possível que não funcione.

Próximo passo, executar o dump do composer para limpar cache e refazer o autoload:

composer dump-autoload

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 not 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 ou mais atual é, 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>

Agora altere a entrada AllowOverride None para AllowOverride All.

Ao fazer isso você define que todos os “sites” instalados em podem realizar a sobrescrita a partir do diretório raiz /var/www.

Salve o arquivo e reinicie o Apache com o comando

sudo service apache2 restart

E é isso, rotas novamente funcionando, em resumo, você precisa configurar o Apache para que o .htaccess de seu projeto possa fazer a sobrescrita de url.

Mantenha-se atualizado

Não esqueça de me seguir no Twitter e assinar o Canal Mazer.dev no Youtube para receber atualizações de novos artigos, vídeo aulas e cursos gratuitos em desenvolvimento e engenharia de software.


Mais sobre Laravel

Boas práticas para escrever Código Limpo
Neste artigo apresento dicas para ao desenvolver um software, escrever com boas práticas de código limpo, o que, em geral, significa escrever blocos de código mais legíveis, em alguns contextos, mais fluídos e, bem estruturados. …
Laravel PHP – Class ‘NumberFormatter’ Not Found
Ao instalar uma aplicação em um servidor Windows (necessidade de projeto, adequação a infraestrutura do cliente), me deparei com o erro "NumberFormatter Not Found". A primeira reação foi verificar se havia esquecido algum commit de …
Como resolver “COMPOSER_AUTH” does not match the expected JSON schema no Laradock
Ao usar Laradock, acessando o container Workspace por vezes tenho recebido o segundo erro ao tentar executar o php composer: "COMPOSER_AUTH" does not match the expected JSON schema, this may result in errors and should …
Livros e-books gratuitos de programação e computação em geral
Procurando livros e-books gratuitos sobre programação, desenvolvimento de software e outras áreas de computação? Esta lista trás estes temas e ainda livros sobre engenharia de software, e outros assuntos. O período de pandemia fez explodir …
Como repopular com old o campo de input file upload, em PHP e Laravel
Após a validação de formulários de entrada de dados, que retornam ao usuário com informações dos erros que devem ser corrigidos, a boa prática de popular os campos com os antigos valores (old) não é …
Razões para escolher e usar PHP como linguagem de programação
Muitos iniciantes e até mesmo desenvolvedores experientes, mas que não conhecem a linguagem, questionam quais as razões para escolher, e definitivamente usar o PHP como a linguagem de programação para um projeto de pequeno ou …

Deixe um comentário

O seu endereço de e-mail não será publicado.

pt_BRPortuguese
%d blogueiros gostam disto: