<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ if (!isset($_GET['website_code'])) { throw new \Exception("website_code GET parameter is not set."); } $websiteCode = urldecode($_GET['website_code']); $rootDir = '../../../../'; $websiteDir = $rootDir . 'websites/' . $websiteCode . '/'; $contents = file_get_contents($rootDir . 'index.php'); $websiteParam = <<<EOD \$params = \$_SERVER; \$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = '$websiteCode'; \$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website'; EOD; $pattern = '`(try {.*?)(\/app\/bootstrap.*?}\n)(.*?)\$_SERVER`mis'; $replacement = "$1/../..$2\n$websiteParam$3\$params"; $contents = preg_replace($pattern, $replacement, $contents); $old = umask(0); mkdir($websiteDir, 0760, true); umask($old); copy($rootDir . '.htaccess', $websiteDir . '.htaccess'); file_put_contents($websiteDir . 'index.php', $contents);