You point to public as your document root, public shouldn't be in the url / uri.
The htaccess file that comes with laravel works properly already. You set this in your VH. Or use a second small htaccess to point to public.
In main folder:
RewriteEngine On
RewriteRule ^(.*)$ public/
RewriteRule ^ server.php
in public folder, the one that ships with laravel:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteBase /laravel842/ I only added this one line.
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# RewriteRule ^(.*)$ public/ [L]
</IfModule>
But the VH is better choice.
