Laravel 5 – Remover public da URL

Laravel 5 – Remover public da URL

26 de fevereiro de 2017 0 Por Ramos de Souza Janones
Do Zero ao Profissional com PHP. Mais de 2.300 alunos recomenda.Powered by Rock Convert

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:  Desafios no desenvolvimento de APIs e IoT no mundo programável

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:  O que é e como usar AJAX?
Email Format


Powered by Rock Convert
Powered by Rock Convert

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.

Últimos posts por Ramos de Souza Janones (exibir todos)