Alias /webapp /usr/share/kopano-webapp

# Modules to enable for the caching instructions to work:
#   mod_expires
#   mod_headers
#   mod_setenvif - for Internet Explorer quirks
#
# For compression:
#   mod_deflate
<Directory /usr/share/kopano-webapp/>
    DirectoryIndex index.php
    Options -Indexes +FollowSymLinks

    <IfModule apparmor_module>
      AAHatName kopano-webapp
    </IfModule>

    <IfVersion < 2.4>
	Allow from all
	AllowOverride Options Limit
	Order allow,deny
    </IfVersion>

    <IfVersion >= 2.4>
	AllowOverride Options Limit Authconfig
	Require all granted
    </IfVersion>

    FileETag All

    # Uncomment to enhance security of WebApp by restricting cookies to only
    # be provided over HTTPS connections
    # php_flag session.cookie_secure on
    # php_flag session.cookie_httponly on

    # Manipulate the cache control headers if mod_expires and
    # mod_headers are both enabled; otherwise the client will depend
    # on the ETag header.  However, you can set FileETag to "None" if
    # you have multiple servers serving WebApp to the same user.  In
    # that case, apache will fall back to the config below so make
    # sure these two modules are loaded!
    <IfModule expires_module>
        <IfModule headers_module>
            ExpiresActive On
            ExpiresDefault "now"
    
            <filesMatch "\.(jpg|gif|png)$">
                # All (static) resources set to 2 months expiration time.
                ExpiresDefault "access plus 2 months"
                Header append Cache-Control "public"
            </filesMatch>
    
            <FilesMatch "\.(js|css)$">
                # All non-dynamic files set to 2 weeks expiration time.
                ExpiresDefault "access plus 2 weeks"
                # User agents are requested to revalidate for each resource
                # so that the server can always serve a newer version if
                # necessary.
                Header append Cache-Control "no-cache, must-revalidate"

                # Treat IE a little differently due to the remarks on no-cache
                # on https://support.microsoft.com/kb/234067
                <IfModule setenvif_module>
                    BrowserMatch MSIE ie_bug
                </IfModule>
                Header set Cache-Control "must-revalidate, private" env=ie_bug
            </FilesMatch>

            <filesMatch "\.(php)$">
                # PHP files must always be retrieved from the server.
                ExpiresActive Off
                Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
                Header set Pragma "no-cache"
            </filesMatch>
        </IfModule>
    </IfModule>

    # Enable gzip compression if the module is available
    <IfModule deflate_module>
        <filesMatch "\.(js|css)$">
            SetOutputFilter DEFLATE
        </filesMatch>
    </IfModule>
</Directory>
