Last Updated: February 22, 2019
· hnordt

Laravel's .htaccess to remove "public" from URL

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^(.*)$ public/$1 [L]

Place this file in Laravel's root directory.

Please note that this isn't the recommended way. A safer way is place Laravel's files outside your web server root and make the Laravel's public directory your web server root. Don't forget to update the paths.php file.

6 Responses
Add your response


I tried this and it doesn't work for me - I keep getting a 404 error from Laravel. Any thoughts on how I could troubleshoot?

over 1 year ago ·

I had the same problem as tridnguyen. This method only works if the base laravel folder is the webroot, it wont work if the base laravel folder is a subfolder of the webroot

over 1 year ago ·

Here is where I found the answer. Tested in local and production server:

over 1 year ago ·

just for the guys using IIS like me, my solution (workaround, I'd say) was to strip index.php from the url by importing the standard .htaccess and then I create a virtual directory, say "employees" pointing to D:\inetpub\wwwroot\lv\employees\public; then navigating thru localhost/employees/controller/method seems to work fine.

over 1 year ago ·

I has try, but it don't, my apache use port 8080.

over 1 year ago ·