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

        RewriteEngine On

        # for assets like js, css, pdf, etc.
        RewriteCond %{REQUEST_URI} !(\.{1}[a-zA-Z]*[\d]*)$ [NC]
        # for assets like js, css, pdf, etc which is in storage directory.
        RewriteCond %{REQUEST_URI}% !(/storage/*) [NC]
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-fr
        RewriteRule ^ index.php [L]

        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_URI} !^/public/
        RewriteRule ^(.*)/(.*)$ public/$1/$2 [L,NC]
</IfModule>

<FilesMatch "^\.">
    Order allow,deny
    Deny from all
</FilesMatch>

<FilesMatch "\.(lock|phar)$">
    Order allow,deny
    Deny from all
</FilesMatch>

<FilesMatch "(composer.json|package.json|package-lock.json|yarn.json)$">
    Order allow,deny
    Deny from all
</FilesMatch>