You are browsing documentation for version 5.0 of OroCommerce, OroCRM, and OroPlatform, maintained until August 2024 and supported until March 2026. See version 5.1 (the latest LTS version) of the Oro documentation for information on latest features.

See our Release Process documentation for more information on the currently supported and upcoming releases.

Available in OroCommerce

Installation in Sub-Folder


This section is part of the Multi-Website Configuration concept guide topic that provides a general understanding of the multiple-website configuration concept in Oro applications.

In OroCommerce, websites may be exposed via different domains or reside in the sub-folders of the same domain (e.g., the two websites that target the United States and the United Kingdom may be available at the and respectively, or they may be reachable via and

For the websites with dedicated domains, you may use the default OroCommerce installation, where all websites are installed into the web folder of the OroCommerce instance. However, you can move or copy the website to the sub-directory to support the websites with the shared domain (e.g., and

To prepare files for the website located in the sub-directory (e.g., /uk), do the following:

  1. Copy index.php from public directory into the new location (e.g., public/uk/) and modify it to update the relative paths (e.g., adding extra /.. prefix to the path).

    For example:

    require_once __DIR__.'/../src/AppKernel.php';

    should be changed to

    require_once __DIR__.'/../../src/AppKernel.php';


    /** @var \Composer\Autoload\ClassLoader $loader */
    $loader = require __DIR__.'/../vendor/autoload.php';

    should be changed to

    /** @var \Composer\Autoload\ClassLoader $loader */
    $loader = require __DIR__.'/../../vendor/autoload.php';
  2. Add WEBSITE_PATH parameter to ServerBag before $response = $kernel->handle($request); This parameter value should be the new website folder name.

    // ...
    $request = Request::createFromGlobals();
    $request->server->add(['WEBSITE_PATH' => '/<yoursitename>']);
    $response = $kernel->handle($request);
    // ...

where <yoursitename> is uk in our example.

Now, when you use the http://localhost/<yoursitename>/index.php address, the asset files (styles.css, app.js, etc.) are taken from the root folder on the domain instead of the dedicated website sub-folder.

Related User Guide Topics