Laravel 5 – Remover public da URL

Laravel 5 – Remover public da URL

26 de fevereiro de 2017 0 Por Ramos de Souza Janones

Existem algumas formas de deploy de uma aplicação feita com Laravel. Por ordem de recomendação, seguem as opções de melhores práticas com PHP.

As opções de deploy abaixo são para o Laravel 5. Não sei se funcionam em outras versões.

Setando o DocumentRoot para a pasta /public

Essa é a forma recomendada pelo time do Laravel e a mais segura de todas. Não há necessidade de alterar arquivos .htaccess, basta usar o padrão do Laravel e pronto. A única coisa a ser feita é configurar o seu Apache. No VirtualHosts faça apontar o DocumentRoot para a pasta public da seguinte maneira:

Usando alias e .htaccess

Uma forma de deploy sem mexer no DocumentRoot é usando aliases do Apache e setando um .htaccess dentro da pasta public um pouco diferente do .htaccess padrão. Usando Alias, seu VirtualHost ficaria parecido com esse abaixo:

Recomendamos a leitura:
- 14 Hábitos de Desenvolvedores Altamente Produtivos eBook Kindle
- Kwai dá dinheiro aos usuários, como ganhar?

Lançamento do jogo Returnal para PlayStation 5
Guia de Compras em PC Gaming

Dessa forma você pode colocar várias aplicações no mesmo DocumentRoot e separada por diretórios. Em cada aplicação, no diretório public, precisaria setar os .htaccess da seguinte forma:

Suas aplicações responderiam nas URLS e . Repare bem nos .htaccess na linha RewriteBase /app2. Isso é para corrigir um problema de paginação do próprio Laravel.

 

LEIA TAMBÉM:  Repositórios Privados para seus Códigos e Projetos gratuito, tipo Github

Movendo os arquivos da pasta public

Essa é forma menos recomendada, pois ela abre brechas de segurança. Entretanto, vamos a ela. Use por sua conta e risco.

  1. Copie todo o conteúdo da pasta public para a raiz do seu projeto.
  2. Abra o arquivo index.php na raiz do projeto e faça as seguintes modificações

Essa solução vai permitir fazer request para qualquer arquivo na sua raiz, inclusive o arquivo .env. Experimente acessar () e você verá suas informações de conexão de banco de dados lá!

Você terá que proteger todos os arquivos que você não quer request direto usando o .htaccess. Não testei, mas acredito que dessa forma:

RewriteRule \.(.env)$ - [F]

Mais uma vez, não recomendo essa solução. Tente entrar em contato com ser host e peça para apontar o Document Root da URL para a pasta public. Use por sua conta e risco.

Outros tutoriais e dicas sobre PHP:

 

Aproveitando, segue nossa indicação:

Curso de Laravel – Plataforma EAD (LaraSchool), foi criado pelaEspecializaTi. Resumidamente: Neste curso você vai aprender a criar uma plataforma ead multi usuários, onde qualquer pessoa pode se cadastrar no sistema e postar cursos e comercializar e ainda aprenderá como integrar o Laravel com um dos gateways de pagamentos mais famosos que existem para produtos digitais, o HotMart. Espero que goste desta dica! 😉

Livros que recomendamos a leitura:
- Programando com Kotlin
- Inspirado: como criar produtos de tecnologia que os clientes amam
- Data science para negócios

Técnicas de Invasão: Aprenda as técnicas usadas por hackers em invasões reais
Python Fluente: Programação Clara, Concisa e Eficaz

Subscribe to our mailing list

* indicates required


Além de PHP e MySQL, deseja receber outro tema?

LEIA TAMBÉM:  MySQLi vs PDO - qual o mais recomendado para usar?

Email Format


votes
Article Rating