{
    use esmith::php;
    #--------------------------------------------------------------
    # Dependancy check, only execute horde configuration if PHP is
    # enabled.
    #--------------------------------------------------------------

    my $PHPStatus = $php{"status"};
    my $status = $horde{'status'};

    if (!defined $PHPStatus or $PHPStatus ne 'enabled')
    {
        $OUT .= "# Error: horde is enabled but PHP is not enabled.";
    }
    elsif (defined $status && $status eq 'enabled')
    {
        $OUT .= qq(
# Horde specific configuration files.
<Directory /usr/share/horde/>
    SSLRequireSSL
    <FilesMatch "test.php\$">
    Require all denied
    </FilesMatch>
    Options Indexes Includes FollowSymLinks
    AllowOverride None
);
       $OUT .= "    ";
       $OUT .= ( $horde{access} eq "public" ) ? "Require all granted" : "Require ip $localAccess";
       $OUT .= "\n";

if (exists $php{status} and $php{status} eq "enabled" and $phpModule eq "enabled")
{
       $OUT .= qq(
    AddType application/x-httpd-php .php .php3
    php_value include_path           '/usr/share/pear-addons:/usr/share/pear'
    php_flag  magic_quotes_gpc       off
    php_flag  track_vars             on
    php_flag  session.use_trans_sid  off
    php_admin_flag  allow_url_fopen  on
    RewriteEngine On
    RewriteCond   %{REQUEST_FILENAME}  !-d
    RewriteCond   %{REQUEST_FILENAME}  !-f
    RewriteRule   ^(.*)\$ /horde/rampage.php [QSA,L]
);
}
else
{
    my $c = esmith::ConfigDB->open_ro || die "Couldn't open the config database";
    my $version = PhpFpmVersionToUse($c->get('horde'),'72');
       $OUT .= qq(
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=\$1
    <FilesMatch \\.php\$>
       <If "-f \%\{SCRIPT_FILENAME\}">
        SetHandler "proxy:unix:/var/run/php-fpm/php$version-horde.sock|fcgi://localhost"
        </If>
    </FilesMatch>
    RewriteEngine On
    RewriteCond   %{REQUEST_FILENAME}  !-d
    RewriteCond   %{REQUEST_FILENAME}  !-f
    RewriteRule   ^(.*)\$ /horde/rampage.php [QSA,L]
);
}

       $OUT .= qq(
</Directory>

<Directory /usr/share/horde/config>
    Require all denied
</Directory>

<Directory /usr/share/horde/content>
    Require all denied
</Directory>

<Directory /usr/share/horde/install>
    Require all denied
</Directory>

<Directory /usr/share/horde/lib>
    Require all denied
</Directory>

<Directory /usr/share/horde/locale>
    Require all denied
</Directory>

<Directory /usr/share/horde/smeserver>
    Require all denied
</Directory>

<Directory /usr/share/horde/scripts>
    Require all denied
</Directory>

<Directory /usr/share/horde/templates>
    Require all denied
</Directory>

<Directory /usr/share/horde/util>
    Require all denied
</Directory>
);
    }
    else
    {
        $OUT .= "# horde not configured as it is disabled in the config db";
    }
}
