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

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

        ProxyPreserveHost On

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

        Include "/etc/koha/apache-shared-opac-antibot.conf"

        # Point the OPAC site to Plack
        ProxyPass /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac"
        ProxyPassReverse /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac"
        ProxyPass /index.html "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac/opac-main.pl"
        ProxyPassReverse /index.html "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac/opac-main.pl"
        ProxyPass /search "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac/opac-search.pl"
        ProxyPassReverse /search "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac/opac-search.pl"
        ProxyPass /opac-search.pl "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac/opac-search.pl"
        ProxyPassReverse /opac-search.pl "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac/opac-search.pl"

        # 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>
