You are browsing upcoming documentation for version 6.1 of OroCommerce, scheduled for release in 2025. Read the documentation for version 6.0 (the latest LTS version) to get up-to-date information.

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

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