Options +FollowSymLinks -Indexes
RewriteEngine On
# LOG AND DENY ACCESS TO CORE DIRs
RewriteRule "^(src|models|views|controllers|includes|forms|templates|sql|classes|settings|uploads|notes|configs|vendor|node_modules)/(.*)$" "index.php?route=/app/home&m=deny&f=$1/$2" [NC,L]
# TRACE and TRACK HTTP methods disabled to prevent XSS attacks
RewriteCond "%{REQUEST_METHOD}" "^TRAC[EK]"
RewriteRule ".*" "-" [L,R=405]
# API
# never rewrite for existing files, directories and links
RewriteCond "%{REQUEST_FILENAME}" "!-f"
RewriteCond "%{REQUEST_FILENAME}" "!-d"
RewriteCond "%{REQUEST_FILENAME}" "!-l"
RewriteRule "^(api|api2)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$" "index.php?project=$2&route=/$3/$4&m=$5&$1=true" [QSA,L]
# Mobile
RewriteCond "%{HTTP_USER_AGENT}" "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteCond "%{REQUEST_FILENAME}" "!-f"
RewriteCond "%{REQUEST_FILENAME}" "!-d"
RewriteCond "%{REQUEST_FILENAME}" "!-l"
RewriteRule "^([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$" "index.php?project=$1&route=/$2/$3&m=$4&mobile=true" [QSA,L]
# Site
RewriteCond "%{REQUEST_FILENAME}" "!-f"
RewriteCond "%{REQUEST_FILENAME}" "!-d"
RewriteCond "%{REQUEST_FILENAME}" "!-l"
RewriteRule "^([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$" "index.php?project=$1&route=/$2/$3&m=$4" [QSA,L]
# always send 404 on missing files in these folders
RewriteCond "%{REQUEST_FILENAME}" "!-f"
RewriteCond "%{REQUEST_FILENAME}" "!-d"
RewriteCond "%{REQUEST_FILENAME}" "!-l"
RewriteRule "^(assets|skin|js|css|public)/(.*)$" "-" [R=404,L,NS]
# Short Hand Site
RewriteCond "%{REQUEST_FILENAME}" "!-f"
RewriteCond "%{REQUEST_FILENAME}" "!-d"
RewriteCond "%{REQUEST_FILENAME}" "!-l"
RewriteRule "^([^/]*)/([^/]*)/([^/]*)/$" "index.php?project=$1&route=/$2/$3&m=index" [QSA,L]
# rewrite everything not found to index.php
RewriteCond "%{REQUEST_FILENAME}" "!-f"
RewriteCond "%{REQUEST_FILENAME}" "!-d"
RewriteCond "%{REQUEST_FILENAME}" "!-l"
RewriteRule ".*" "index.php" [L]
#ErrorDocument 404 /404.php
Order allow,deny
Deny from all
Order allow,deny
Deny from all
Header set Content-Type "text/x-handlebars-template; charset=UTF-8"
AddCharset UTF-8 .tpl
Order allow,deny
Allow from all