First do not modify the htaccess in public, and in root, this one works to point to public:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^ [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
Only used if a virtual host can't be used.
You may want to look into using Nginx instead and follow:
But you need to point to public as document root one way or the other, a virtual host is the preferred way.