Ответы на вопросы
+1 голос
351 просмотров

Я обновил магазин Magento 2.3.2 на Magento 2.3.5 и всё работает, как ожидалось, за исключением настройки нескольких сайтов на разных доменах. Моя первоначальная установка Megento состояла из одного сайта с двумя разными магазинами на разных доменах (.ru и .com), у каждого из них было два просмотра магазина (на разных языках). Вся документация, которую я смог найти, показывает, как настроить сайты, магазины и представления магазинов в Magento 2, то что нужно изменить в index.php, чтобы получить желаемый результат. Моя проблема в том, что вся эта документация предоставляет решения для отображения нескольких веб-сайтов, но моя установка состоит из одной установки Magento, следовательно, ни одна представленная в интернете инструкция мне не помогла. В инструкциях пишут, как нужно настроить второй домен, но не пишут что мне изменять в index.php? И где, на дополнительном домене или на основном, где установлена CMS? Я полагаю, мне нужно там использовать код магазина или сайта? Я не могу заставить второй домен работать, работает только основной сайт с установкой magento, дополнительный сайт не работает, пишет http 500. Есть решения этой проблемы?

Вот что я уже сделал:

  • Я установил второй домен в корень сервера, создал символические ссылки на основные папки app, var, pub и lib.
  • Отредактировал index.php в корне основного моего сайта, где установлена Magento. 
  1. $params = $_SERVER;
  2. $domain2store = array(
  3.     'site.com'=>'base', 
  4.     'saite.ru'=>'newsite',   
  5.     );
  6. if(isset($domain2store[$_SERVER['HTTP_HOST']]))
  7. $storecode = $domain2store[$_SERVER['HTTP_HOST']];
  8. $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = isset($storecode) ? $storecode : '';
  9. $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
  10. $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
  11. $app = $bootstrap->createApplication('Magento\Framework\App\Http');
  12. $bootstrap->run($app);

Выделенное красным заменил своими значениями, но это не работает. На втором домене все так же http 500.

Пытался использовать коды магазинов вместо кодов веб-сайтов, и коды представления магазинов, но выдает ту же ошибку

Отредактировал htaccess в корне основного сайта, добавил отредактированный htaccess на второй домен, но результатов нет.

  1. SetEnv MAGE_RUN_TYPE website
  2. SetEnvIf Host essentuki.foraon.com MAGE_RUN_CODE=newsite
  3. SetEnvIf Host foraon.com MAGE_RUN_CODE=base

В бекэнде всё настроено правильно, до обновления всё работало прекрасно, но после обновления всё пропало и ничего не помогает.

Я очень надеюсь, что кто-нибудь сможет мне с этим помочь. 

от | 351 просмотров

1 Ответ

0 голосов
Для настройки нескольких доменов на одной установке Magento 2 рекомендуется обратиться к специалисту.

Вот пошаговая инструкция:

1. Создайте веб-сайт. Для этого войдите в панель администратора Magento, перейдите в раздел «Stores» — «Settings» — «All Stores» и нажмите «Create Website». Введите имя, код и порядок сортировки веб-сайта и нажмите «Save Web Site».

2. Создайте магазин. Для этого нажмите «Create Store» на странице «Stores» и настройте следующие параметры: веб-сайт, имя, код и корневая категория магазина. Нажмите «Save Store».

3. Создайте представление магазина. Для этого вернитесь на страницу «Stores» и нажмите «Create Store View». На странице «Store View Information» введите следующие данные: магазин, имя, код, статус и порядок сортировки представления магазина. Нажмите «Save Store View».

4. Создайте пользовательские URL для каждого магазина. Для этого перейдите в раздел «Stores» — «Settings» — «Configuration» — «General» — «Web» и выберите веб-сайт из выпадающего списка в верхнем левом углу. В разделе «Base URLs» снимите флажок «Use Default» и введите полный URL субдомена для этого веб-сайта с протоколом «https://». Повторите те же шаги для раздела «Base URLs (Secure)». Нажмите «Save Config».

5. Добавьте код магазина в базовый URL веб-сайта. Для этого перейдите в раздел «Stores» — «Settings» — «Configuration» — «General» — «Web» и установите Scope на «Default Config». В разделе «URL Options» снимите флажок «Use system value» рядом с параметром «Add Store Code to Urls» и установите значение «Yes». Нажмите «Save Config» и очистите кэш магазина на странице администратора «System» — «Cache Management».
от
Добро пожаловать на сайт Вопросов.Нет, где вы можете задавать вопросы и получать ответы от других участников сообщества.
140 вопросов
192 ответов
12 комментариев
489 пользователей