{
    my $status = $shellinaboxd{'status'} || "disabled";
    return "    # shellinabox is disabled in this VirtualHost"
        unless $status eq 'enabled';
    {
        $OUT .= "###########################################################\n";
        $OUT .= "########       shellinabox reverse proxy         ##########\n";
        $OUT .= "###########################################################\n";
        {
            if ( $port ne "443" ) {
                $OUT .= "# Redirect shellinabox Address to Secure Address\n";
                $OUT .= "    RewriteEngine On\n";
                $OUT .= "    RewriteCond %{HTTPS} off\n";
                $OUT .= "    RewriteRule \/$shellinaboxd{'Name'} https:\/\/%{HTTP_HOST}:443\/$shellinaboxd{'Name'}\n";
                $OUT .= "## End Of Redirect\n";
            }

            $OUT .= "##########\n";
            $OUT .= "    AddExternalAuth pwauth /usr/bin/pwauth\n";
            $OUT .= "    SetExternalAuthMethod pwauth pipe\n";
            $OUT .= "#########\n";
            $OUT .= "\n";
            $OUT .= "#########\n";
            $OUT .= "\<Location \/$shellinaboxd{'Name'}\>\n";
            $OUT .= "    ProxyPass http://localhost:$shellinaboxd{'TcpPort'}/" . "\n";
            $OUT .= "    Require all denied\n";
            $OUT .= "    SSLRequireSSL\n";

            if ( $shellinaboxd{'PublicAccess'} eq 'local' ) {
                $OUT .= "    Require ip $localAccess\n";
            }
            elsif ( $shellinaboxd{'PublicAccess'} eq 'global' ) {
                $OUT .= "    Require all granted\n";
            }
            elsif ( $shellinaboxd{'PublicAccess'} eq 'IP' ) {
                my $fixedip = $shellinaboxd{'FixedIP'} || "";
                $OUT .= "    Require ip $fixedip\n";
            }
            elsif ( ( $shellinaboxd{'PublicAccess'} ne 'global' ) && ( $shellinaboxd{'PublicAccess'} ne 'local' ) ) {
                $OUT .= "    Require all denied\n";
            }

            $OUT .= "    AuthName \"$shellinaboxd{'Name'}\"\n";
            $OUT .= "    AuthBasicProvider external\n";
            $OUT .= "    AuthType Basic\n";
            $OUT .= "    AuthExternal pwauth\n";

            if ( ( $shellinaboxd{'PublicAccess'} ne 'local' ) || ( $shellinaboxd{'WebAuth'} eq 'enabled' ) ) {
                my @users = split( ",", ( $shellinaboxd{ShellUsers} || "" ) );
                $OUT .= "    Require valid-user admin @users\n";
            }

            $OUT .= "\<\/Location\>\n";
            $OUT .= "#########\n";
        }
    }
}
