Running multiple sites on a single domain

This page describes how to run multiple websites in separate sub-folders on a single domain. In this scenario, you do not need to obtain new domains for each site.

Example - Installing two sites onto a single domain

  1. Install a Kentico web project to the following folder: C:\inetpub\wwwroot\kenticofolder.
    • In the installer, choose Custom installation and disable the Register to IIS option in the Installation type settings (does not create a virtual directory).
  2. Open your Internet Information Services (IIS) Manager console (Start -> Control Panel -> Administrative tools -> Internet Information Services (IIS) Manager).
  3. Create a new virtual directory named kenticoweb.
    • The name of the virtual directory must be different than the folder where you installed the web project.
    • Set the Physical path to a non-website folder in the root of a local disk. Ideally, create an empty folder for this purpose, for example: c:\empty
  4. Create two IIS applications under kenticoweb named web1 and web2.
    • Set the Physical path of both applications to the web site folder of the installed project (C:\inetpub\wwwroot\kenticofolder\CMS in this example).
    • Set the application pool according to the type that you specified in the installation of the Kentico web project.
  5. Open your browser and type in either http://localhost/kenticoweb/web1 or http://localhost/kenticoweb/web2.

  6. Sign in to the Kentico administration interface and open the Sites application.

  7. Install both sites. Set the Site domain name fields:

    • Website 1: localhost/kenticoweb/web1

    • Website 2: localhost/kenticoweb/web2

Now when you go to http://localhost/kenticoweb/web1, you will see website 1. If you go to http://localhost/kenticoweb/web2, you will see website 2.

Synchronizing global data for the sites

To ensure the synchronization of settings and global objects between the two sites, you need to set up a Web farm environment:

  1. Sign in to the Kentico administration interface on one of the sites.
  2. Open the Settings application.
  3. Select the Versioning & Synchronization -> Web farm category.
  4. Select Automatic as the Web farm mode.
  5. Click Save.
  6. Add the following key to the <appSettings> section of the web.config file in the installation directory shared by both websites:

    <add key="CMSWebFarmSynchronizeFiles" value="false" />
    

The system automatically creates web farm servers for the applications and performs synchronization. The CMSWebFarmSynchronizeFiles web.config key disables synchronization of files, which is not needed since the applications already use the same physical folder.

Avoiding file system conflicts

To prevent problems with file conflicts for web analytics log files and locally stored search indexes, you need to configure the application to use a shared file system. Add the following key to the <appSettings> section of the web.config file in the installation directory shared by both websites:

<add key="CMSSharedFileSystem" value="true" />

With a shared file system, the system automatically avoids file name collisions for smart search indexes and web analytics logs.

Your websites should now work without issues.