# -------------------------------------------------------------------------
# Fix HTTP Basic Auth for CGI / FPM
# -------------------------------------------------------------------------
<IfModule mod_version.c>
    <IfVersion >= 2.4.0>
        CGIPassAuth on
    </IfVersion>
</IfModule>
<IfModule mod_setenvif.c>
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
    SetEnvIf Accept "(.*)" HTTP_ACCEPT=$1
</IfModule>
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    # Skip existing files / dirs / symlinks
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -l
    RewriteRule ^ - [L]
    # SOAP
    RewriteRule ^(soap)/(.+)$ soap.php/$2 [QSA,L,NC]
    # PORTAL
    RewriteRule ^(portal)/(.+)$ Portal.php/$2 [QSA,L,NC]
    # AUTH
    RewriteRule ^auth/([^/]+)$ index.php?module=Auth&key=$1 [L,NC]
    RewriteRule ^auth/([^/]+)/([^/]+)$ index.php?module=Auth&login=$1&password=$2 [L,NC]
    # MODULE / ID / TOKEN
    RewriteRule ^([^/]+)/([0-9]+)/([A-Za-z0-9]{32})/?$ index.php?module=$1&id=$2&token=$3 [L]
    # CRITERIA
    RewriteRule ^([^/]+)/criteria/([^/]+)/([A-Za-z0-9]{32})/?$ index.php?module=$1&criteria=$2&token=$3 [L]
    RewriteRule ^([^/]+)/criteria/([^/]+)/(.+)/([A-Za-z0-9]{32})/?$ index.php?module=$1&criteria=$2&params=$3&token=$4 [L]
    # PICKLIST
    RewriteRule ^([^/]+)/picklist/([^/]+)/([A-Za-z0-9]{32})/?$ index.php?module=$1&picklist=$2&token=$3 [L]
    RewriteRule ^([^/]+)/picklist/picklistdep/([^/]+)/([A-Za-z0-9]{32})/?$ index.php?picklistdep=1&module=$1&picklist=$2&token=$3 [L]
    # ACTION
    RewriteRule ^([^/]+)/action/([^/]+)/(.+)/([A-Za-z0-9]{32})/?$ index.php?module=$1&action=$2&params=$3&token=$4 [L]
    # FALLBACK
    RewriteRule ^([^/]+)/(.+)/([A-Za-z0-9]{32})/?$ index.php?module=$1&params=$2&token=$3 [L]
    RewriteRule ^([^/]+)/([^/]+)/?$ index.php?module=$1&token=$2 [L]
    # API
    RewriteRule ^api/(.+)$ Api.php/$1 [QSA,L,NC]
    Options -Indexes
    Options +SymLinksIfOwnerMatch
</IfModule>
# -------------------------------------------------------------------------
# Headers
# -------------------------------------------------------------------------
<IfModule mod_headers.c>
    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Headers "Authorization"
</IfModule>
# -------------------------------------------------------------------------
# Legacy ModSecurity v1 (disabled)
# -------------------------------------------------------------------------
<IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>