# SSL/TLS HSTS - HTTP Strict Transport Security
# When not wanted (e.g. during dev, some miracle) this disables HSTS on most browser
<IfModule mod_headers.c>
    Header set Strict-Transport-Security "max-age=0; includeSubDomains; preload" env=HTTPS
</IfModule>

<IfModule mod_rewrite.c>

    # only with this, GET parameters will be functional
    Options +FollowSymlinks

    # everything should be utf-8
    AddCharset utf-8 .html .php .css .js

    RewriteEngine On

    # removes trailing slashes
    RewriteRule ^(.*)/$ /$1 [L,R] # <- for test, for prod use [L,R=301]

    # Apache strips Authorization headers not in basic auth format, we use Authorization Bearer token, enable pass-through of this header
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

    #
    # no rewrite when these Folders/Files are called
    #

    # exclude some folder from rewrite
    RewriteRule ^data/out/.*$ - [NC,L]

    # exclude some file from rewrite
    # RewriteRule ^view/flood/route-logo-min.png$ - [L]

    RewriteRule ^robots.txt$ - [L]

    #
    # exclude from access, some only to ensure
    #

    RewriteRule ^cli*$ - [NC,F]

    RewriteRule ^admin/app/.*$ - [NC,F]
    RewriteRule ^admin/data/.*$ - [NC,F]
    RewriteRule ^admin/system/.*$ - [NC,F]
    RewriteRule ^admin/view/.*$ - [NC,F]
    RewriteRule ^config/.*$ - [NC,F]
    RewriteRule ^tmp/.*$ - [NC,F]
    RewriteRule ^vendor/.*$ - [NC,F]

    #
    #
    # Admin

    # todo: add generic include /admin/build for all files which exist when accessing from /admin/

    RewriteRule ^admin/asset-manifest.json admin/build/asset-manifest.json [NC,L]
    RewriteRule ^admin/favicon.ico admin/build/favicon.ico [NC,L]
    RewriteRule ^admin/manifest.json admin/build/manifest.json [NC,L]
    RewriteRule ^admin/service-worker.js admin/build/service-worker.js [NC,L]
    RewriteRule ^admin/static/.*$ - [NC,L]

    RewriteRule ^admin$ admin/build/index.html [NC,QSA,L]
    RewriteRule ^admin/(.*)$ admin/build/index.html [NC,QSA,L]

    # end Admin
    #

    #
    # Frontend
    # push everything into one file
    #

    RewriteRule ^(.*)$ flow.php [NC,QSA,L]

</IfModule>