you would not put the base Laravel folder in public_html
.
In a Laravel directory structure, which gets created when you do the laravel new
command, there is a directory called public
. This is what you map your web root to. So on my vps, I have a folder called /var/site/mywebapp
which was created by the command:
laravel new mywebapp
In nginx
(which I much prefer over Apache), I map my server root to:
/var/sites/mywebapp/public
In the public
folder is an index.php
that Laravel uses to run your whole app/site. The rest of the framework is outside of the web root and is not accessible by HTTP.
As for your URL issues, consult the documentation for how to properly configure your mod_rewrite
(assuming Apache).
Also, Dayle Rees, a prominent member of the Laravel community (and core contributor), has a github of sample web server configs here: