# Apache configuration settings that are shared for every Koha instance.
# This file contains settings for the Plack configuration of the intranet.
#
# This file should be included from an instance's
# /etc/apache2/site-available file, from within the VirtualHost section
# for the intranet.

# Plack is only available out-of-the-box for Apache 2.4.8+ setups
<IfVersion >= 2.4.8>
    <IfModule mod_proxy_http.c>

        # FIXME: These scripts should be fixed so they
        # don't break under plack/starman
        ProxyPass "/cgi-bin/koha/tools/export.pl" "!"
        ProxyPass "/cgi-bin/koha/tools/upload-cover-image.pl" "!"
        ProxyPass "/cgi-bin/koha/svc/cataloguing/metasearch" "!"

        ProxyPreserveHost On

        RequestHeader set X-FORWARDED-PROTO "https" env=HTTPS

        # Point the intranet site to Plack
        ProxyPass /index.html "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet/mainpage.pl"
        ProxyPassReverse /index.html "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet/mainpage.pl"
        ProxyPass /cgi-bin/koha/svc "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet_svc"
        ProxyPassReverse /cgi-bin/koha/svc "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet_svc"

        ProxyPass /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet"
        ProxyPassReverse /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet"

        # Point the /api endpoint to Plack
        RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl
        RewriteRule ^/api/(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2 [L,PT]

        ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api"
        ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api"

    </IfModule>
</IfVersion>
