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.

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:

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 https://www.example.com/app1 e https://www.example.com/app2. Repare bem nos .htaccess na linha RewriteBase /app2. Isso é para corrigir um problema de paginação do próprio Laravel.

 

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 (https://example.com/app/.env) 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:

 

LEIA TAMBÉM:  PHP - Boleto bancário open-source em 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! 😉

Subscribe to our mailing list

* indicates required


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

LEIA TAMBÉM:  PHP - Envie dados ao servidor mesmo se o usuário fechar o navegador
Email Format


Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.