code: private function getFolderUrlFragments(string $alias, string $host, string $locale = null): ?array
      {
          // Check if there are pages with a matching alias
          $pages = $this->getPageCandidates($alias);
          if (null === $pages) {
              return null;
          }
  
          // Look for a root page whose domain name matches the host name
          if (isset($pages[$host])) {
              $languages = $pages[$host];
          } else {
              // empty domain
              $languages = $pages['*'] ?: [];
          }
          unset($pages);
  
          $pages = [];
  
          if (!$this->isLocalePrepended) {
              // Use the first result (see #4872)
              $pages = current($languages);
          } elseif ($locale && isset($languages[$locale])) {
              // Try to find a page matching the language parameter
              $pages = $languages[$locale];
          }
  
          // Return if there are no matches
          if (empty($pages)) {
              return null;
          }
  
          /** @var PageModel $page */
          $page = $pages[0];
  
          // The request consists of the alias only
          if ($alias == $page->alias) {
              $arrFragments = [$alias];
          } else {
              // Remove the alias from the request string, explode it and then re-insert it at the beginning.
              $arrFragments = explode('/', substr($alias, (\strlen($page->alias) + 1)));
              array_unshift($arrFragments, $page->alias);
          }
  
          return $arrFragments;
      }
docs: Update the fragments for folder URL aliases.
  
  @param string      $alias  The relative request.
  @param string      $host   The host part of the current request.
  @param string|null $locale The current locale or null if none requested.
  
  @return array