Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteBase /
DirectoryIndex /apps/main/public/index.php

## Favicon
RewriteRule ^favicon.ico /apps/main/public/favicon.png [QSA,L]

## SECURITY ##
<FilesMatch "\.(ini|log|sh|sql|htaccess)">
	Order Allow,Deny
	Deny from All
</FilesMatch>
RewriteRule (^|/)apps/update(/|$) - [F]

RewriteCond %{REQUEST_URI} !^/apps/auto-install/public
RewriteRule ^apps/auto-install/.* - [F]

RewriteCond %{REQUEST_URI} !^/apps/install/public
RewriteRule ^apps/install/.* - [F]

RewriteCond %{REQUEST_URI} !^/apps/api/public
RewriteRule ^apps/api/.* - [F]

RewriteCond %{REQUEST_URI} !^/apps/dashboard/public
RewriteRule ^apps/dashboard/.* - [F]

RewriteCond %{REQUEST_URI} !^/apps/main/public
RewriteCond %{REQUEST_URI} !^/apps/main/app/views/themes/([0-9a-zA-Z-_]+)/assets
RewriteRule ^apps/main/.* - [F]

## Auto Installer Assets
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule auto-install/assets/(.*)$ /apps/auto-install/public/assets/$1 [QSA,L]

## Installer Assets
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule install/assets/(.*)$ /apps/install/public/assets/$1 [QSA,L]

## Dashboard Assets (cached) /dashboard/assets/file.1234567890.ext
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule dashboard/assets/(.+)\.(\d+)\.(js|css|png|jpeg|jpg|webp|svg|gif|ico|mp3|mp4|json|ttf|eot|woff|woff2)$ /apps/dashboard/public/assets/$1.$3 [QSA,L]

## Dashboard Assets to access directly /dashboard/assets/file.ext
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule dashboard/assets/(.+)\.(js|css|png|jpeg|jpg|webp|svg|gif|ico|mp3|mp4|json|ttf|eot|woff|woff2)$ /apps/dashboard/public/assets/$1.$2 [QSA,L]

## Images for Main
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule assets/core/images/(.*)$ /apps/main/public/images/$1 [QSA,L]

## Theme Assets (cached) /assets/theme_name/file.1234567890.ext
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule assets/([0-9a-zA-Z-_]+)/(.+)\.(\d+)\.(js|css|png|jpeg|jpg|webp|svg|gif|ico|mp3|mp4|json|ttf|eot|woff|woff2)$ /apps/main/app/views/themes/$1/assets/$2.$4 [QSA,L]

# Theme Assets to access directly /assets/theme_name/file.ext
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule assets/([0-9a-zA-Z-_]+)/(.+)\.(js|css|png|jpeg|jpg|webp|svg|gif|ico|mp3|mp4|json|ttf|eot|woff|woff2)$ /apps/main/app/views/themes/$1/assets/$2.$3 [QSA,L]

## Auto Installer Routes
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteCond %{REQUEST_URI} ^/auto-install
RewriteRule ^(.*)$ /apps/auto-install/public/index.php?/$1 [QSA,L]

## Installer Routes
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteCond %{REQUEST_URI} ^/install
RewriteRule ^(.*)$ /apps/install/public/index.php?/$1 [QSA,L]

## API Routes
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteCond %{REQUEST_URI} ^/api
RewriteRule ^(.*)$ /apps/api/public/index.php?/$1 [QSA,L]

## Dashboard Routes
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteCond %{REQUEST_URI} ^/dashboard
RewriteRule ^(.*)$ /apps/dashboard/public/index.php?/$1 [QSA,L]

## Main Routes
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^(.*)$ /apps/main/public/index.php?/$1 [QSA,L]