Making Subdirectories Accessible without a Public folder

Technically there is some risk to this since it could potentially expose configuration files in the root directory. I negate this somewhat by adding a DENY rule to .env files. I still wouldn't recommend it for a production site, but I find it useful for development and preventing the need to create apache config files for every Laravel project.

- Create a Laravel project

laravel create newproject

- Rename the 'server.php' file to 'index.php' in the root directory

- Add a .htaccess file to the root directory:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteRule ^(.*)/$ /hello/index.php/$1 [L]

</IfModule>

<Files .env>
    Order Allow,Deny
    Deny from all
</Files>

Note: Customize the RewriteRule line to match your subdirectory.