Expand my Community achievements bar.

Submissions are now open for the 2026 Adobe Experience Maker Awards.
SOLVED

How to setup a local AEMaaCS instance to support SSI

Avatar

Level 3

I have configured my AEMaaCS build to support SSI for local and ESI for cloud servers.

 

For the cloud servers this is working correctly, however I need to do developer testing of the code which means using SSI (which works on the cloud servers)

 

I am using the latest AEMaaCS build of the dispatcher, install my dispatcher configuration, however SSI still only shows the SSI 

<div class="navigation aem-GridColumn aem-GridColumn--default--12"><!-- SDI include (path: /gb/en/index/_jcr_content/root/container/navigation.nocache.html/whitelabel/components/navigation, resourceType: whitelabel/components/navigation) -->
<!--#include virtual="/gb/en/index/_jcr_content/root/container/navigation.nocache.html/whitelabel/components/navigation" --></div>

 

What changes do i need to make to the local dispatcher to have SSI working.

 

I do have the following statements in the configuration

 

AddOutputFilter DEFLATE;INCLUDES .html
Options +Includes

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @taggatmerkle,

mod_include being loaded by default - if SSI tags are still just showing up in the HTML and not actually being executed on your local dispatcher, you might want to try a few additional steps. Here’s what I’d look into:

A few things to check or try out:
  1. Confirm mod_include is actually enabled locally
    You can double-check it’s loaded with:

    apachectl -M | grep include

    If it’s not there, you’ll want to enable it. On some systems, that’s just:

    a2enmod include
  2. Add these in your dispatcher Apache config
    Inside your <Directory> or <VirtualHost> block (where your .html pages are being served), make sure you’ve got:

    Options +Includes AddOutputFilter INCLUDES .html AddType text/html .html

    This tells Apache to actually parse .html files for SSI directives like <!--#include virtual=...-->.

  3. Make sure SDI is configured to use SSI locally
    In AEM, jump into the Felix Console (/system/console/configMgr) and search for "Sling Dynamic Include". You’ll want to:

    • Set the Include Type to SSI

    • Optionally check "Add Comment" for easier debugging

    • Use a Path Regex like .* or just target the paths you care about

  4. Watch out for gzip interference
    Sometimes, Apache won’t process SSI if the output is compressed first. You could try turning off gzip (at least temporarily) like this:

    RemoveOutputFilter DEFLATE SetOutputFilter INCLUDES

    Just to see if that’s what’s blocking it.

  5. Tail the Apache error logs while testing
    Might help surface something unexpected:

    tail -f /var/log/apache2/error.log
  6. And finally, check your dispatcher.any rules
    Make sure those .html files aren’t being cached or filtered in a way that would skip server-side processing. Sometimes this can sneak in if caching is too aggressive.

hope that helps!


Santosh Sai

AEM BlogsLinkedIn


View solution in original post

4 Replies

Avatar

Employee

For SSI, the Apache module 'mod_include' is loaded by default and can be used for SSI using SDI (Sling Dynamic Includes)

While you can load mod_include, but would have to work with its default settings.

Reference :
https://experienceleague.adobe.com/en/docs/experience-cloud-kcs/kbarticles/ka-21610
https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/con...

Avatar

Correct answer by
Community Advisor

Hi @taggatmerkle,

mod_include being loaded by default - if SSI tags are still just showing up in the HTML and not actually being executed on your local dispatcher, you might want to try a few additional steps. Here’s what I’d look into:

A few things to check or try out:
  1. Confirm mod_include is actually enabled locally
    You can double-check it’s loaded with:

    apachectl -M | grep include

    If it’s not there, you’ll want to enable it. On some systems, that’s just:

    a2enmod include
  2. Add these in your dispatcher Apache config
    Inside your <Directory> or <VirtualHost> block (where your .html pages are being served), make sure you’ve got:

    Options +Includes AddOutputFilter INCLUDES .html AddType text/html .html

    This tells Apache to actually parse .html files for SSI directives like <!--#include virtual=...-->.

  3. Make sure SDI is configured to use SSI locally
    In AEM, jump into the Felix Console (/system/console/configMgr) and search for "Sling Dynamic Include". You’ll want to:

    • Set the Include Type to SSI

    • Optionally check "Add Comment" for easier debugging

    • Use a Path Regex like .* or just target the paths you care about

  4. Watch out for gzip interference
    Sometimes, Apache won’t process SSI if the output is compressed first. You could try turning off gzip (at least temporarily) like this:

    RemoveOutputFilter DEFLATE SetOutputFilter INCLUDES

    Just to see if that’s what’s blocking it.

  5. Tail the Apache error logs while testing
    Might help surface something unexpected:

    tail -f /var/log/apache2/error.log
  6. And finally, check your dispatcher.any rules
    Make sure those .html files aren’t being cached or filtered in a way that would skip server-side processing. Sometimes this can sneak in if caching is too aggressive.

hope that helps!


Santosh Sai

AEM BlogsLinkedIn


Avatar

Level 3

In the end it was because the local instance didn't clear out the "defaull.vhost" which had the deflate command in it

Avatar

Community Advisor