Laravel 5 – Remove Public from URL

user1537360 picture user1537360 · Feb 6, 2015 · Viewed 254.6k times · Source

I know this is a very popular question but I haven't been able to find a working solution for Laravel 5. I've been trying to migrate from Codeigniter for a long time, but this convoluted installation process keeps putting me off.

I don't want to run a VM, this just seems awkward when switching between projects.

I don't want to set my document root to the public folder, this is also awkward when switching between projects.

I've tried the .htaccess mod_rewrite method

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

This just gives me a Laravel NotFoundHttpException in compiled.php line 7610.

When I tried L4 a while ago, I used the method of moving the contents of the public folder into the root. The structure of L5 is quite different and following the same steps completely broke Laravel (the server would only return a blank page).

Is there a decent method of removing 'public' in a development environment that:

  1. Works with L5
  2. Allows me to switch between projects with ease (I'm usually working on 2 or 3 at any one time).

Thanks

** I'm using MAMP and PHP 5.6.2

Answer

Asfaq Tamim picture Asfaq Tamim · Feb 26, 2015

For Laravel 5:

  1. Rename server.php in your Laravel root folder to index.php
  2. Copy the .htaccess file from /public directory to your Laravel root folder.

That's it!