◄ Помощь ► Magento 2

upload_2017-9-6_15-49-32.png
<-------------- добавлено через 840 сек. -------------->
Так в том то и дело, что это не так то просто как кажется. Блок 1 и 3 находятся в общем контейнере и блоки с кнопками подключаются через xml. Допустим удаляю эту привязку, прямо в list.phtml вставляю блоки этих кнопок из отдельных файлов (это не знаю как корректно сделать), то касяк будет если открыть товар в режиме "лист" (должна быть первой кнопка "Добавить в корзину"). Смотрел в файлы темы porto, там как-то навернули, что идёт какая-та проверка, и в зависимости от режима идёт подмена, хотя присутствует в коде кусок с блоком "addto", но в теме он не используется, в общем там каша какая-та...
скинь еще раз свой код - не могу найти - странно. скинь файл сюда
<-------------- добавлено через 5907 сек. -------------->
Как корректно изменить файл list.phtml, чтобы переместить кнопки по бокам?

Z1P2j.png


Код файла list.phtml тема Luma:
Код:
<?php
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
use Magento\Framework\App\Action\Action;

// @codingStandardsIgnoreFile

?>
<?php
/**
* Product list template
*
* @var $block \Magento\Catalog\Block\Product\ListProduct
*/
?>
<?php
$_productCollection = $block->getLoadedProductCollection();
$_helper = $this->helper('Magento\Catalog\Helper\Output');
?>
<?php if (!$_productCollection->count()): ?>
    <div class="message info empty"><div><?php /* @escapeNotVerified */ echo __('We can\'t find products matching the selection.') ?></div></div>
<?php else: ?>
    <?php echo $block->getToolbarHtml() ?>
    <?php echo $block->getAdditionalHtml() ?>
    <?php
    if ($block->getMode() == 'grid') {
        $viewMode = 'grid';
        $image = 'category_page_grid';
        $showDescription = false;
        $templateType = \Magento\Catalog\Block\Product\ReviewRendererInterface::SHORT_VIEW;
    } else {
        $viewMode = 'list';
        $image = 'category_page_list';
        $showDescription = true;
        $templateType = \Magento\Catalog\Block\Product\ReviewRendererInterface::FULL_VIEW;
    }
    /**
     * Position for actions regarding image size changing in vde if needed
     */
    $pos = $block->getPositioned();
    ?>
    <div class="products wrapper <?php /* @escapeNotVerified */ echo $viewMode; ?> products-<?php /* @escapeNotVerified */ echo $viewMode; ?>">
        <?php $iterator = 1; ?>
        <ol class="products list items product-items">
            <?php /** @var $_product \Magento\Catalog\Model\Product */ ?>
            <?php foreach ($_productCollection as $_product): ?>
                <?php /* @escapeNotVerified */ echo($iterator++ == 1) ? '<li class="item product product-item">' : '</li><li class="item product product-item">' ?>
                <div class="product-item-info" data-container="product-grid">
                    <?php
                    $productImage = $block->getImage($_product, $image);
                    if ($pos != null) {
                        $position = ' style="left:' . $productImage->getWidth() . 'px;'
                            . 'top:' . $productImage->getHeight() . 'px;"';
                    }
                    ?>
                    <?php // Product Image ?>
                    <a href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>" class="product photo product-item-photo" tabindex="-1">
                        <?php echo $productImage->toHtml(); ?>
                    </a>
                    <div class="product details product-item-details">
                        <?php
                            $_productNameStripped = $block->stripTags($_product->getName(), null, true);
                        ?>
                        <strong class="product name product-item-name">
                            <a class="product-item-link"
                               href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>">
                                <?php /* @escapeNotVerified */ echo $_helper->productAttribute($_product, $_product->getName(), 'name'); ?>
                            </a>
                        </strong>
                        <?php echo $block->getReviewsSummaryHtml($_product, $templateType); ?>
                        <?php /* @escapeNotVerified */ echo $block->getProductPrice($_product) ?>
                        <?php echo $block->getProductDetailsHtml($_product); ?>

                        <div class="product-item-inner">
                            <div class="product actions product-item-actions"<?php echo strpos($pos, $viewMode . '-actions') ? $position : ''; ?>>
                                <div class="actions-primary"<?php echo strpos($pos, $viewMode . '-primary') ? $position : ''; ?>>
                                    <?php if ($_product->isSaleable()): ?>
                                        <?php $postParams = $block->getAddToCartPostParams($_product); ?>
                                        <form data-role="tocart-form" action="<?php /* @escapeNotVerified */ echo $postParams['action']; ?>" method="post">
                                            <input type="hidden" name="product" value="<?php /* @escapeNotVerified */ echo $postParams['data']['product']; ?>">
                                            <input type="hidden" name="<?php /* @escapeNotVerified */ echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php /* @escapeNotVerified */ echo $postParams['data'][Action::PARAM_NAME_URL_ENCODED]; ?>">
                                            <?php echo $block->getBlockHtml('formkey')?>
                                            <button type="submit"
                                                    title="<?php echo $block->escapeHtml(__('Add to Cart')); ?>"
                                                    class="action tocart primary">
                                                <span><?php /* @escapeNotVerified */ echo __('Add to Cart') ?></span>
                                            </button>
                                        </form>
                                    <?php else: ?>
                                        <?php if ($_product->getIsSalable()): ?>
                                            <div class="stock available"><span><?php /* @escapeNotVerified */ echo __('In stock') ?></span></div>
                                        <?php else: ?>
                                            <div class="stock unavailable"><span><?php /* @escapeNotVerified */ echo __('Out of stock') ?></span></div>
                                        <?php endif; ?>
                                    <?php endif; ?>
                                </div>
                                <div data-role="add-to-links" class="actions-secondary"<?php echo strpos($pos, $viewMode . '-secondary') ? $position : ''; ?>>
                                    <?php if ($addToBlock = $block->getChildBlock('addto')): ?>
                                        <?php echo $addToBlock->setProduct($_product)->getChildHtml(); ?>
                                    <?php endif; ?>
                                </div>
                            </div>
                            <?php if ($showDescription):?>
                                <div class="product description product-item-description">
                                    <?php /* @escapeNotVerified */ echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
                                    <a href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>" title="<?php /* @escapeNotVerified */ echo $_productNameStripped ?>"
                                       class="action more"><?php /* @escapeNotVerified */ echo __('Learn More') ?></a>
                                </div>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>
                <?php echo($iterator == count($_productCollection)+1) ? '</li>' : '' ?>
            <?php endforeach; ?>
        </ol>
    </div>
    <?php echo $block->getToolbarHtml() ?>
    <?php if (!$block->isRedirectToCartEnabled()) : ?>
        <script type="text/x-magento-init">
        {
            "[data-role=tocart-form], .form.map.checkout": {
                "catalogAddToCart": {}
            }
        }
        </script>
    <?php endif; ?>
<?php endif; ?>
PS. Тоже заметил странность с потерей сообщения, оказалось настройки форума изменились и сообщения теперь объединяются автоматически.
Попробуй, должно все работать, если все ок - просто раздели дивами и поменяй местами их. если что пиши
 

Вложения

  • list.zip
    2,1 KB · Просмотры: 5
Как корректно изменить файл list.phtml, чтобы переместить кнопки по бокам?

Z1P2j.png


Код файла list.phtml тема Luma:
Код:
<?php
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
use Magento\Framework\App\Action\Action;

// @codingStandardsIgnoreFile

?>
<?php
/**
* Product list template
*
* @var $block \Magento\Catalog\Block\Product\ListProduct
*/
?>
<?php
$_productCollection = $block->getLoadedProductCollection();
$_helper = $this->helper('Magento\Catalog\Helper\Output');
?>
<?php if (!$_productCollection->count()): ?>
    <div class="message info empty"><div><?php /* @escapeNotVerified */ echo __('We can\'t find products matching the selection.') ?></div></div>
<?php else: ?>
    <?php echo $block->getToolbarHtml() ?>
    <?php echo $block->getAdditionalHtml() ?>
    <?php
    if ($block->getMode() == 'grid') {
        $viewMode = 'grid';
        $image = 'category_page_grid';
        $showDescription = false;
        $templateType = \Magento\Catalog\Block\Product\ReviewRendererInterface::SHORT_VIEW;
    } else {
        $viewMode = 'list';
        $image = 'category_page_list';
        $showDescription = true;
        $templateType = \Magento\Catalog\Block\Product\ReviewRendererInterface::FULL_VIEW;
    }
    /**
     * Position for actions regarding image size changing in vde if needed
     */
    $pos = $block->getPositioned();
    ?>
    <div class="products wrapper <?php /* @escapeNotVerified */ echo $viewMode; ?> products-<?php /* @escapeNotVerified */ echo $viewMode; ?>">
        <?php $iterator = 1; ?>
        <ol class="products list items product-items">
            <?php /** @var $_product \Magento\Catalog\Model\Product */ ?>
            <?php foreach ($_productCollection as $_product): ?>
                <?php /* @escapeNotVerified */ echo($iterator++ == 1) ? '<li class="item product product-item">' : '</li><li class="item product product-item">' ?>
                <div class="product-item-info" data-container="product-grid">
                    <?php
                    $productImage = $block->getImage($_product, $image);
                    if ($pos != null) {
                        $position = ' style="left:' . $productImage->getWidth() . 'px;'
                            . 'top:' . $productImage->getHeight() . 'px;"';
                    }
                    ?>
                    <?php // Product Image ?>
                    <a href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>" class="product photo product-item-photo" tabindex="-1">
                        <?php echo $productImage->toHtml(); ?>
                    </a>
                    <div class="product details product-item-details">
                        <?php
                            $_productNameStripped = $block->stripTags($_product->getName(), null, true);
                        ?>
                        <strong class="product name product-item-name">
                            <a class="product-item-link"
                               href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>">
                                <?php /* @escapeNotVerified */ echo $_helper->productAttribute($_product, $_product->getName(), 'name'); ?>
                            </a>
                        </strong>
                        <?php echo $block->getReviewsSummaryHtml($_product, $templateType); ?>
                        <?php /* @escapeNotVerified */ echo $block->getProductPrice($_product) ?>
                        <?php echo $block->getProductDetailsHtml($_product); ?>

                        <div class="product-item-inner">
                            <div class="product actions product-item-actions"<?php echo strpos($pos, $viewMode . '-actions') ? $position : ''; ?>>
                                <div class="actions-primary"<?php echo strpos($pos, $viewMode . '-primary') ? $position : ''; ?>>
                                    <?php if ($_product->isSaleable()): ?>
                                        <?php $postParams = $block->getAddToCartPostParams($_product); ?>
                                        <form data-role="tocart-form" action="<?php /* @escapeNotVerified */ echo $postParams['action']; ?>" method="post">
                                            <input type="hidden" name="product" value="<?php /* @escapeNotVerified */ echo $postParams['data']['product']; ?>">
                                            <input type="hidden" name="<?php /* @escapeNotVerified */ echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php /* @escapeNotVerified */ echo $postParams['data'][Action::PARAM_NAME_URL_ENCODED]; ?>">
                                            <?php echo $block->getBlockHtml('formkey')?>
                                            <button type="submit"
                                                    title="<?php echo $block->escapeHtml(__('Add to Cart')); ?>"
                                                    class="action tocart primary">
                                                <span><?php /* @escapeNotVerified */ echo __('Add to Cart') ?></span>
                                            </button>
                                        </form>
                                    <?php else: ?>
                                        <?php if ($_product->getIsSalable()): ?>
                                            <div class="stock available"><span><?php /* @escapeNotVerified */ echo __('In stock') ?></span></div>
                                        <?php else: ?>
                                            <div class="stock unavailable"><span><?php /* @escapeNotVerified */ echo __('Out of stock') ?></span></div>
                                        <?php endif; ?>
                                    <?php endif; ?>
                                </div>
                                <div data-role="add-to-links" class="actions-secondary"<?php echo strpos($pos, $viewMode . '-secondary') ? $position : ''; ?>>
                                    <?php if ($addToBlock = $block->getChildBlock('addto')): ?>
                                        <?php echo $addToBlock->setProduct($_product)->getChildHtml(); ?>
                                    <?php endif; ?>
                                </div>
                            </div>
                            <?php if ($showDescription):?>
                                <div class="product description product-item-description">
                                    <?php /* @escapeNotVerified */ echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
                                    <a href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>" title="<?php /* @escapeNotVerified */ echo $_productNameStripped ?>"
                                       class="action more"><?php /* @escapeNotVerified */ echo __('Learn More') ?></a>
                                </div>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>
                <?php echo($iterator == count($_productCollection)+1) ? '</li>' : '' ?>
            <?php endforeach; ?>
        </ol>
    </div>
    <?php echo $block->getToolbarHtml() ?>
    <?php if (!$block->isRedirectToCartEnabled()) : ?>
        <script type="text/x-magento-init">
        {
            "[data-role=tocart-form], .form.map.checkout": {
                "catalogAddToCart": {}
            }
        }
        </script>
    <?php endif; ?>
<?php endif; ?>
PS. Тоже заметил странность с потерей сообщения, оказалось настройки форума изменились и сообщения теперь объединяются автоматически.
<-------------- добавлено через 5005 сек. -------------->
Посмотреть вложение 88056
<-------------- добавлено через 840 сек. -------------->

скинь еще раз свой код - не могу найти - странно. скинь файл сюда
<-------------- добавлено через 5907 сек. -------------->

Попробуй, должно все работать, если все ок - просто раздели дивами и поменяй местами их. если что пиши
К сожалению это не совсем то, загвоздка в том, что при таком варианте, если включить отображение категории как список, то получается слева будет кнопка "Добавить в избранное". В том-то и сложность, чтобы сделать только в режиме сетки значки по бокам. В теме Porto сделали так, но код большой для понимания...
<-------------- добавлено через 4782 сек. -------------->
Сделал иначе, не знаю насколько корректно, но по примеру блока "description" в том же файле.
Код:
<?php
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
use Magento\Framework\App\Action\Action;

// @codingStandardsIgnoreFile

?>
<?php
/**
* Product list template
*
* @var $block \Magento\Catalog\Block\Product\ListProduct
*/
?>
<?php
$_productCollection = $block->getLoadedProductCollection();
$_helper = $this->helper('Magento\Catalog\Helper\Output');
?>
<?php if (!$_productCollection->count()): ?>
    <div class="message info empty"><div><?php /* @escapeNotVerified */ echo __('We can\'t find products matching the selection.') ?></div></div>
<?php else: ?>
    <?php echo $block->getToolbarHtml() ?>
    <?php echo $block->getAdditionalHtml() ?>
    <?php
    if ($block->getMode() == 'grid') {
        $viewMode = 'grid';
        $image = 'category_page_grid';
        $showDescription = false;
        $WishlistAfter = false;
        $WishlistBefore = true;
        $templateType = \Magento\Catalog\Block\Product\ReviewRendererInterface::SHORT_VIEW;
    } else {
        $viewMode = 'list';
        $image = 'category_page_list';
        $showDescription = true;
        $WishlistAfter = true;
        $WishlistBefore = false;
        $templateType = \Magento\Catalog\Block\Product\ReviewRendererInterface::FULL_VIEW;
    }
    /**
     * Position for actions regarding image size changing in vde if needed
     */
    $pos = $block->getPositioned();
    ?>
    <div class="products wrapper <?php /* @escapeNotVerified */ echo $viewMode; ?> products-<?php /* @escapeNotVerified */ echo $viewMode; ?>">
        <?php $iterator = 1; ?>
        <ol class="products list items product-items">
            <?php /** @var $_product \Magento\Catalog\Model\Product */ ?>
            <?php foreach ($_productCollection as $_product): ?>
                <?php /* @escapeNotVerified */ echo($iterator++ == 1) ? '<li class="item product product-item">' : '</li><li class="item product product-item">' ?>
                <div class="product-item-info" data-container="product-grid">
                    <?php
                    $productImage = $block->getImage($_product, $image);
                    if ($pos != null) {
                        $position = ' style="left:' . $productImage->getWidth() . 'px;'
                            . 'top:' . $productImage->getHeight() . 'px;"';
                    }
                    ?>
                    <?php // Product Image ?>
                    <a href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>" class="product photo product-item-photo" tabindex="-1">
                        <?php echo $productImage->toHtml(); ?>
                    </a>
                    <div class="product details product-item-details">
                        <?php
                            $_productNameStripped = $block->stripTags($_product->getName(), null, true);
                        ?>
                        <strong class="product name product-item-name">
                            <a class="product-item-link"
                               href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>">
                                <?php /* @escapeNotVerified */ echo $_helper->productAttribute($_product, $_product->getName(), 'name'); ?>
                            </a>
                        </strong>
                        <?php echo $block->getReviewsSummaryHtml($_product, $templateType); ?>
                        <?php /* @escapeNotVerified */ echo $block->getProductPrice($_product) ?>
                        <?php echo $block->getProductDetailsHtml($_product); ?>

                        <div class="product-item-inner">
                            <div class="product actions product-item-actions"<?php echo strpos($pos, $viewMode . '-actions') ? $position : ''; ?>>
                                <?php if ($WishlistBefore):?>
                                    <?php if ($this->helper('Magento\Wishlist\Helper\Data')->isAllow()): ?>
                                        <a href="#"
                                           class="action towishlist"
                                           title="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>"
                                           aria-label="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>"
                                           data-post='<?php /* @escapeNotVerified */ echo $block->getAddToWishlistParams($_product); ?>'
                                           data-action="add-to-wishlist"
                                           role="button">
                                            <span><?php /* @escapeNotVerified */ echo __('Add to Wish List') ?></span>
                                        </a>
                                    <?php endif; ?>
                                <?php endif; ?>
                                <div class="actions-primary"<?php echo strpos($pos, $viewMode . '-primary') ? $position : ''; ?>>
                                    <?php if ($_product->isSaleable()): ?>
                                        <?php $postParams = $block->getAddToCartPostParams($_product); ?>
                                        <form data-role="tocart-form" action="<?php /* @escapeNotVerified */ echo $postParams['action']; ?>" method="post">
                                            <input type="hidden" name="product" value="<?php /* @escapeNotVerified */ echo $postParams['data']['product']; ?>">
                                            <input type="hidden" name="<?php /* @escapeNotVerified */ echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php /* @escapeNotVerified */ echo $postParams['data'][Action::PARAM_NAME_URL_ENCODED]; ?>">
                                            <?php echo $block->getBlockHtml('formkey')?>
                                            <button type="submit"
                                                    title="<?php echo $block->escapeHtml(__('Add to Cart')); ?>"
                                                    class="action tocart primary">
                                                <span><?php /* @escapeNotVerified */ echo __('Add to Cart') ?></span>
                                            </button>
                                        </form>
                                    <?php else: ?>
                                        <?php if ($_product->getIsSalable()): ?>
                                            <div class="stock available"><span><?php /* @escapeNotVerified */ echo __('In stock') ?></span></div>
                                        <?php else: ?>
                                            <div class="stock unavailable"><span><?php /* @escapeNotVerified */ echo __('Out of stock') ?></span></div>
                                        <?php endif; ?>
                                    <?php endif; ?>
                                </div>
                                <?php if ($WishlistAfter):?>
                                    <?php if ($this->helper('Magento\Wishlist\Helper\Data')->isAllow()): ?>
                                        <a href="#"
                                           class="action towishlist"
                                           title="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>"
                                           aria-label="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>"
                                           data-post='<?php /* @escapeNotVerified */ echo $block->getAddToWishlistParams($_product); ?>'
                                           data-action="add-to-wishlist"
                                           role="button">
                                            <span><?php /* @escapeNotVerified */ echo __('Add to Wish List') ?></span>
                                        </a>
                                    <?php endif; ?>
                                <?php endif; ?>
                                <?php $compareHelper = $this->helper('Magento\Catalog\Helper\Product\Compare'); ?>
                                <a href="#"
                                   class="action tocompare"
                                   title="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
                                   aria-label="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
                                   data-post='<?php /* @escapeNotVerified */ echo $compareHelper->getPostDataParams($_product); ?>'
                                   role="button">
                                    <span><?php /* @escapeNotVerified */ echo __('Add to Compare') ?></span>
                                </a>
                            </div>
                            <?php if ($showDescription):?>
                                <div class="product description product-item-description">
                                    <?php /* @escapeNotVerified */ echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
                                    <a href="<?php /* @escapeNotVerified */ echo $_product->getProductUrl() ?>" title="<?php /* @escapeNotVerified */ echo $_productNameStripped ?>"
                                       class="action more"><?php /* @escapeNotVerified */ echo __('Learn More') ?></a>
                                </div>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>
                <?php echo($iterator == count($_productCollection)+1) ? '</li>' : '' ?>
            <?php endforeach; ?>
        </ol>
    </div>
    <?php echo $block->getToolbarHtml() ?>
    <?php if (!$block->isRedirectToCartEnabled()) : ?>
        <script type="text/x-magento-init">
        {
            "[data-role=tocart-form], .form.map.checkout": {
                "catalogAddToCart": {}
            }
        }
        </script>
    <?php endif; ?>
<?php endif; ?>
 
Wrong default price configurable product if default display currency different from base currency? any one know any solution ? i am using 2.1.8
 
Всем привет! Кто-нибудь пытался настроить мульти-магазин с разными доменами? Давайте разберём вместе задачу пошагово. Документация скудная по этому вопросу и есть открытые билеты на гит-хабе с проблемами с мульти-сайтами. К примеру, чтобы были две версии сайта: английский (основной со входом в админку) - domain.com и русский - domain.ru.
<-------------- добавлено через 15532 сек. -------------->
Забыл уточнить, речь идёт о Nginx и https, а на видео apache. Насколько знаю в Nginx не нужно редактировать index.php, нужно настроить конфигурацию на сервере. Официальная документация по настройке расплывчатая.
 
Последнее редактирование:
Всем привет! Кто-нибудь пытался настроить мульти-магазин с разными доменами? Давайте разберём вместе задачу пошагово. Документация скудная по этому вопросу и есть открытые билеты на гит-хабе с проблемами с мульти-сайтами. К примеру, чтобы были две версии сайта: английский (основной со входом в админку) - domain.com и русский - domain.ru.
<-------------- добавлено через 11936 сек. -------------->
Всем привет! Кто-нибудь пытался настроить мульти-магазин с разными доменами? Давайте разберём вместе задачу пошагово. Документация скудная по этому вопросу и есть открытые билеты на гит-хабе с проблемами с мульти-сайтами. К примеру, чтобы были две версии сайта: английский (основной со входом в админку) - domain.com и русский - domain.ru.
<-------------- добавлено через 15532 сек. -------------->

Забыл уточнить, речь идёт о Nginx и https, а на видео apache. Насколько знаю в Nginx не нужно редактировать index.php, нужно настроить конфигурацию на сервере. Официальная документация по настройке расплывчатая.

после того как все добавил в админ-панели, нужно в фронт контроллер передать параметры MAGE_RUN_TYPE и MAGE_RUN_CODE. это можно сделать изменив index.php, или через .htaccess или конф файлы nginx или VirtualHost для apache.

все с примерами описано тут:
Multiple websites or stores:
Для просмотра ссылки Войди или Зарегистрируйся
настройка nginx (разверни To create virtual hosts:(
Для просмотра ссылки Войди или Зарегистрируйся
настройка apache:
Для просмотра ссылки Войди или Зарегистрируйся
 
PS Кто-нибудь знает почему часть товара показывает путь в хлебных крошках "Главная > Категория 1 > Товар 1", а часть товара выводит "Главная > Товар 1"?


при создании товара и добавлении его в каталог генерируются записи в Url Rewrite.
их все можно посмотреть в меню Marketing > URL Rewrite. там есть редиректы для каждого товара напрямую и записи для товаров с внутри каждого каталога.
 
<-------------- добавлено через 11936 сек. -------------->


после того как все добавил в админ-панели, нужно в фронт контроллер передать параметры MAGE_RUN_TYPE и MAGE_RUN_CODE. это можно сделать изменив index.php, или через .htaccess или конф файлы nginx или VirtualHost для apache.

все с примерами описано тут:
Multiple websites or stores:
Для просмотра ссылки Войди или Зарегистрируйся
настройка nginx (разверни To create virtual hosts:(
Для просмотра ссылки Войди или Зарегистрируйся
настройка apache:
Для просмотра ссылки Войди или Зарегистрируйся
Там нет никаких примеров на самом деле. С nginx упоминается только $MAGE_RUN_TYPE and $MAGE_RUN_CODE. Вопрос в каком месте файла nginx.conf.sample?
Кто-нибудь пробовал это с https конфигурацией?
К примеру есть такой конфиг:
Код:
upstream fastcgi_backend {
    server unix:/var/run/php/php7.0-fpm.sock;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name domain.ru www.domain.ru domain.com www.domain.com;
    return 301 https://domain.ru$request_uri;
}

Разбиваем его на два:

Код:
upstream fastcgi_backend {
    server unix:/var/run/php/php7.0-fpm.sock;
}

map $http_host $MAGE_RUN_CODE {
   domain.ru ru;
}

server {
   listen 80;
   server_name domain.ru www.domain.ru;
   return 301 https://domain.ru$request_uri;
}

Второй по аналогии.
Код:
upstream fastcgi_backend {
    server unix:/var/run/php/php7.0-fpm.sock;
}

map $http_host $MAGE_RUN_CODE {
   domain.com en;
}

server {
   listen 80;
   server_name domain.com www.domain.com;
   return 301 https://domain.com$request_uri;
}
Кто воплощал, так же вышло?

PS Кто-нибудь знает почему часть товара показывает путь в хлебных крошках "Главная > Категория 1 > Товар 1", а часть товара выводит "Главная > Товар 1"?
<-------------- добавлено через 2298 сек. -------------->
при создании товара и добавлении его в каталог генерируются записи в Url Rewrite.
их все можно посмотреть в меню Marketing > URL Rewrite. там есть редиректы для каждого товара напрямую и записи для товаров с внутри каждого каталога.
Там все продукты имеют по три записи: без категории, в родительской категории первого уровня и в родительской категории второго уровня. Суть не в этом, а в том, что в разнобой для одних товаров показывает путь в хлебных крошках, а в других нет.
<-------------- добавлено через 9249 сек. -------------->
map нужно прописать в nginx.conf или добавить через include
в блок -
Код:
http {

......
    upstream fastcgi_backend {
        server unix:/var/run/php/php7.0-fpm.sock;
    }

map

.....

}

также , если используете Certbot /LetsEncrypt не забудьте после создания субдоменов перекомпилируйте сертификат
Благодарю, но вопрос подробнее и с примерами, содержащие блоки map. Хочется всё это вывести в полный готовый 100% пример для всех. Интересует полностью ли корректные конфиги или кто-то делал иначе. $MAGE_RUN_TYPE and $MAGE_RUN_CODE в каком месте файла nginx.conf.sample должны быть добавлены? Чтобы map работала в конфигурации хостов nginx, строки упомянутые выше добавляются в файл nginx.conf.sample (не путать с блоками map).
<-------------- добавлено через 16016 сек. -------------->
map нужно прописать в /etc/nginx/nginx.conf или добавить через include предварительно создав файл конфигурации
в блок -
Код:
http {

......
    upstream fastcgi_backend {
        server unix:/var/run/php/php7.0-fpm.sock;
    }

map$

.....

}
в nginx.conf.sample чётко сказано внести данные директивы до подключения блока
server {}

также , если используете Certbot /LetsEncrypt не забудьте после создания субдоменов перекомпилируйте сертификат

касательно upstream fastcgi_backend
лучше сделать следующее
особенно для тех у кого несколько виртуальных хостов
в nginx.conf.sample найдите все строки
fastcgi_pass fastcgi_backend;
замените на
fastcgi_pass unix:(путь к сокету данного виртуального хоста);
если используете порт
fastcgi_pass 127.0.0.1:ПОРТ;
<-------------- добавлено через 3471 сек. -------------->

говоря другими словами
вам нужно что бы вместо вас кто-то настроил сервер и выложил конфигурацию
вы не учитываете что каждый сервер индивидуален
nginx.conf.sample
Код:
root $MAGE_ROOT/pub;

index index.php;
autoindex off;
charset UTF-8;
error_page 404 403 = /errors/404.php;
#add_header "X-UA-Compatible" "IE=Edge";

# PHP entry point for setup application
location ~* ^/setup($|/) {
    root $MAGE_ROOT;
    location ~ ^/setup/index.php {
        fastcgi_pass   fastcgi_backend;

        fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
        fastcgi_param  PHP_VALUE "memory_limit=768M \n max_execution_time=600";
        fastcgi_read_timeout 600s;
        fastcgi_connect_timeout 600s;

        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ ^/setup/(?!pub/). {
        deny all;
    }

    location ~ ^/setup/pub/ {
        add_header X-Frame-Options "SAMEORIGIN";
    }
}

# PHP entry point for update application
location ~* ^/update($|/) {
    root $MAGE_ROOT;

    location ~ ^/update/index.php {
        fastcgi_split_path_info ^(/update/index.php)(/.+)$;
        fastcgi_pass   fastcgi_backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        include        fastcgi_params;
    }

    # Deny everything but index.php
    location ~ ^/update/(?!pub/). {
        deny all;
    }

    location ~ ^/update/pub/ {
        add_header X-Frame-Options "SAMEORIGIN";
    }
}

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

location /pub/ {
    location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
        deny all;
    }
    alias $MAGE_ROOT/pub/;
    add_header X-Frame-Options "SAMEORIGIN";
}

location /static/ {
    # Uncomment the following line in production mode
    # expires max;

    # Remove signature of the static files that is used to overcome the browser cache
    location ~ ^/static/version {
        rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
        add_header Cache-Control "public";
        add_header X-Frame-Options "SAMEORIGIN";
        expires +1y;

        if (!-f $request_filename) {
            rewrite ^/static/?(.*)$ /static.php?resource=$2 last;
        }
    }
    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
        add_header Cache-Control "no-store";
        add_header X-Frame-Options "SAMEORIGIN";
        expires    off;

        if (!-f $request_filename) {
           rewrite ^/static/?(.*)$ /static.php?resource=$2 last;
        }
    }
    if (!-f $request_filename) {
        rewrite ^/static/?(.*)$ /static.php?resource=$2 last;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

location /media/ {
    try_files $uri $uri/ /get.php$is_args$args;

    location ~ ^/media/theme_customization/.*\.xml {
        deny all;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
        add_header Cache-Control "public";
        add_header X-Frame-Options "SAMEORIGIN";
        expires +1y;
        try_files $uri $uri/ /get.php$is_args$args;
    }
    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
        add_header Cache-Control "no-store";
        add_header X-Frame-Options "SAMEORIGIN";
        expires    off;
        try_files $uri $uri/ /get.php$is_args$args;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

location /media/customer/ {
    deny all;
}

location /media/downloadable/ {
    deny all;
}

location /media/import/ {
    deny all;
}

# PHP entry point for main application
location ~ (index|get|static|report|404|503)\.php$ {
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend;
    fastcgi_buffers 1024 4k;
    fastcgi_param    MAGE_RUN_CODE $MAGE_RUN_CODE;
    fastcgi_param    MAGE_RUN_TYPE $MAGE_RUN_TYPE;

    fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param  PHP_VALUE "memory_limit=768M \n max_execution_time=18000";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;

    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

gzip on;
gzip_disable "msie6";

gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    application/xml+rss
    image/svg+xml;
gzip_vary on;

# Banned locations (only reached if the earlier PHP entry point regexes don't match)
location ~* (\.php$|\.htaccess$|\.git) {
    deny all;
}

nginx.conf

Код:
user  nginx;
worker_processes  auto;
worker_rlimit_nofile 100000;

pid        /var/run/nginx.pid;

events {
    worker_connections  4096;
    multi_accept on;
       }

http   {
    index         index.html index.php;
    include       mime.types;
    types { application/font-woff2  woff2; }
    default_type  application/octet-stream;
 
    upstream fastcgi_backend {
        #use tcp connection
        # server  127.0.0.1:9000;
        # or socket
        #server   unix:/var/run/php5-fpm.sock;
        server   unix:/var/run/php/php7.0-fpm.sock;
    } 
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" - "$request_id"';
 
    keepalive_timeout   5;
    autoindex        off;
    server_tokens       off;
    port_in_redirect    off;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    etag        off;

 
    ## Gzipping is an easy way to reduce page weight
    gzip                on;
    gzip_vary           on;
    gzip_proxied        any;
    gzip_types          application/javascript application/x-javascript application/rss+xml text/javascript text/css text/plain image/x-icon image/svg+xml;
    gzip_buffers        4 16k;
    gzip_comp_level     6;
 
    map $http_host $MAGE_RUN_CODE {
    hostnames;
            .magento.com default;
            .magento.de store_de;
            .magento.fr store_fr;
            promo.magento.com promo;
    }

    map $http_host $MAGE_RUN_TYPE {
    hostnames;
            .magento.com store;
            .magento.de store;
            .magento.fr store;
            promo.magento.com website;
    } 
 
    ## Main domain configuration
    include /etc/nginx/sites-enabled/*.conf;
    include /etc/nginx/conf.d/*.conf;
}

не забудьте заменить названия файлов, доменов и пути к тем или иным файлам
на те параметры, которые используются на вашем сервере
На самом речь, чтобы разобраться в правильной конфигурации настройки мульти-магазина с разными домена, как я вижу вы просто в свою конфигурацию написали два блока map, в официальной документации это делается в два отдельных файла конфигурации. Вот о чём речь, недопонимание официальной документации, которой не хватает более ясной подачи и ясности. Что касается конфигурации сервера, у меня своя настройка.
Код:
upstream fastcgi_backend {
    server unix:/var/run/php/php7.0-fpm.sock;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name domain.ru www.domain.ru domain.com www.domain.com;
    return 301 https://domain.ru$request_uri;
}

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/ssl-domain.ru.conf;
    include snippets/ssl-params.conf;

    set $MAGE_ROOT /var/www/domain.ru/html;
    set $MAGE_MODE default;

    location ^~ /.well-known {
        alias /var/www/domain.ru/html/.well-known/;
        auth_basic off;
        allow all;
    }

    location = /robots.txt {
        alias /var/www/domain.ru/html/robots.txt;
    }
   
    location = /sitemap.xml {
        alias /var/www/domain.ru/html/sitemap.xml;
    }

    include /var/www/domain.ru/html/nginx.conf.sample;
}
Иными слова мне не нужна чужая, больше нравится своя более структурированная и имеет ssl.
<-------------- добавлено через 18957 сек. -------------->
map нужно прописать в /etc/nginx/nginx.conf или добавить через include предварительно создав файл конфигурации
в блок -
Код:
http {
......
    upstream fastcgi_backend {
        server unix:/var/run/php/php7.0-fpm.sock;
    }
map$
.....
}
в nginx.conf.sample чётко сказано внести данные директивы до подключения блока
server {}

также , если используете Certbot /LetsEncrypt не забудьте после создания субдоменов перекомпилируйте сертификат

касательно upstream fastcgi_backend
лучше сделать следующее
особенно для тех у кого несколько виртуальных хостов
в nginx.conf.sample найдите все строки
fastcgi_pass fastcgi_backend;
замените на
fastcgi_pass unix:(путь к сокету данного виртуального хоста);
если используете порт
fastcgi_pass 127.0.0.1:ПОРТ;
<-------------- добавлено через 3471 сек. -------------->


говоря другими словами
вам нужно что бы вместо вас кто-то настроил сервер и выложил конфигурацию
вы не учитываете что каждый сервер индивидуален
nginx.conf.sample
Код:
root $MAGE_ROOT/pub;

index index.php;
autoindex off;
charset UTF-8;
error_page 404 403 = /errors/404.php;
#add_header "X-UA-Compatible" "IE=Edge";

# PHP entry point for setup application
location ~* ^/setup($|/) {
    root $MAGE_ROOT;
    location ~ ^/setup/index.php {
        fastcgi_pass   fastcgi_backend;

        fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
        fastcgi_param  PHP_VALUE "memory_limit=768M \n max_execution_time=600";
        fastcgi_read_timeout 600s;
        fastcgi_connect_timeout 600s;

        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ ^/setup/(?!pub/). {
        deny all;
    }

    location ~ ^/setup/pub/ {
        add_header X-Frame-Options "SAMEORIGIN";
    }
}

# PHP entry point for update application
location ~* ^/update($|/) {
    root $MAGE_ROOT;

    location ~ ^/update/index.php {
        fastcgi_split_path_info ^(/update/index.php)(/.+)$;
        fastcgi_pass   fastcgi_backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        include        fastcgi_params;
    }

    # Deny everything but index.php
    location ~ ^/update/(?!pub/). {
        deny all;
    }

    location ~ ^/update/pub/ {
        add_header X-Frame-Options "SAMEORIGIN";
    }
}

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

location /pub/ {
    location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
        deny all;
    }
    alias $MAGE_ROOT/pub/;
    add_header X-Frame-Options "SAMEORIGIN";
}

location /static/ {
    # Uncomment the following line in production mode
    # expires max;

    # Remove signature of the static files that is used to overcome the browser cache
    location ~ ^/static/version {
        rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
        add_header Cache-Control "public";
        add_header X-Frame-Options "SAMEORIGIN";
        expires +1y;

        if (!-f $request_filename) {
            rewrite ^/static/?(.*)$ /static.php?resource=$2 last;
        }
    }
    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
        add_header Cache-Control "no-store";
        add_header X-Frame-Options "SAMEORIGIN";
        expires    off;

        if (!-f $request_filename) {
           rewrite ^/static/?(.*)$ /static.php?resource=$2 last;
        }
    }
    if (!-f $request_filename) {
        rewrite ^/static/?(.*)$ /static.php?resource=$2 last;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

location /media/ {
    try_files $uri $uri/ /get.php$is_args$args;

    location ~ ^/media/theme_customization/.*\.xml {
        deny all;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
        add_header Cache-Control "public";
        add_header X-Frame-Options "SAMEORIGIN";
        expires +1y;
        try_files $uri $uri/ /get.php$is_args$args;
    }
    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
        add_header Cache-Control "no-store";
        add_header X-Frame-Options "SAMEORIGIN";
        expires    off;
        try_files $uri $uri/ /get.php$is_args$args;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

location /media/customer/ {
    deny all;
}

location /media/downloadable/ {
    deny all;
}

location /media/import/ {
    deny all;
}

# PHP entry point for main application
location ~ (index|get|static|report|404|503)\.php$ {
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend;
    fastcgi_buffers 1024 4k;
    fastcgi_param    MAGE_RUN_CODE $MAGE_RUN_CODE;
    fastcgi_param    MAGE_RUN_TYPE $MAGE_RUN_TYPE;

    fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param  PHP_VALUE "memory_limit=768M \n max_execution_time=18000";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;

    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

gzip on;
gzip_disable "msie6";

gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    application/xml+rss
    image/svg+xml;
gzip_vary on;

# Banned locations (only reached if the earlier PHP entry point regexes don't match)
location ~* (\.php$|\.htaccess$|\.git) {
    deny all;
}

nginx.conf

Код:
user  nginx;
worker_processes  auto;
worker_rlimit_nofile 100000;

pid        /var/run/nginx.pid;

events {
    worker_connections  4096;
    multi_accept on;
       }

http   {
    index         index.html index.php;
    include       mime.types;
    types { application/font-woff2  woff2; }
    default_type  application/octet-stream;

    upstream fastcgi_backend {
        #use tcp connection
        # server  127.0.0.1:9000;
        # or socket
        #server   unix:/var/run/php5-fpm.sock;
        server   unix:/var/run/php/php7.0-fpm.sock;
    }

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" - "$request_id"';

    keepalive_timeout   5;
    autoindex        off;
    server_tokens       off;
    port_in_redirect    off;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    etag        off;


    ## Gzipping is an easy way to reduce page weight
    gzip                on;
    gzip_vary           on;
    gzip_proxied        any;
    gzip_types          application/javascript application/x-javascript application/rss+xml text/javascript text/css text/plain image/x-icon image/svg+xml;
    gzip_buffers        4 16k;
    gzip_comp_level     6;

    map $http_host $MAGE_RUN_CODE {
    hostnames;
            .magento.com default;
            .magento.de store_de;
            .magento.fr store_fr;
            promo.magento.com promo;
    }

    map $http_host $MAGE_RUN_TYPE {
    hostnames;
            .magento.com store;
            .magento.de store;
            .magento.fr store;
            promo.magento.com website;
    }

    ## Main domain configuration
    include /etc/nginx/sites-enabled/*.conf;
    include /etc/nginx/conf.d/*.conf;
}

не забудьте заменить названия файлов, доменов и пути к тем или иным файлам
на те параметры, которые используются на вашем сервере
<-------------- добавлено через 14173 сек. -------------->

вообще то это из оффициального конфига + пара строк и изменений
а мой собственный конфиг раза в 3-4 больше того, что выложил здесь
так как включает в себя настройки для других модулей и скриптов

Для просмотра ссылки Войди или Зарегистрируйся
nginx.conf для каждого индивидуальный
но, что бы правильно распределить файлы и всё раскладывать по полкам
есть функция include
создаёте файл с нужным отрезком кода
в основном конфиге в нужном месте вставляете строку include путь_к_файлу_с_отрезком;
и получите нужный результат


директива map показана для наглядности , что бы было понятно что относится к блоку
http {}
а куда и как распределять директивы на вашем сервере , это конечно решать вам

что касается SSL и как подключить SSL (certbot) найдете Для просмотра ссылки Войди или Зарегистрируйся

P.S. если не совсем понимаете , что делаете или что нужно делать:
1) прочитайте руководство заново, но внимательно.
2) если не получается или накосячили не вините другого в ваших ошибках, прочитайте руководство заново ещё более внимательно,

3) если прочитав руководство два раза не смогли добиться результата, не упрямьтесь, пожалейте собственное время и нервы, наймите специалиста, который разбирается в этом и сделает всё так , как требуется.
в итоге у вас будет рабочий сервер и пример конфигурации.
Давайте по порядку:
1. Конфигурация пишется не /etc/nginx/nginx.conf, а /etc/nginx/sites-available. Это более грамотный и чистый подход, тем более, что и по любой официальной документации, в том числе и Magento 2.
2. Не нужно писать конфиги с ошибками как бы для наглядности. Написали много кода ни о чём. В /etc/nginx/nginx.conf есть строка include /etc/nginx/sites-enabled/*;, что говорит о том, что написанный кусок с map и так находится в блоке http.
3. Вопрос был задан конкретно о переменных и сочетании с SSL. Читайте внимательно документацию и вопросы и не отправляйте других нанимать "специалистов".
 
Давайте по порядку:
1. Конфигурация пишется не /etc/nginx/nginx.conf, а /etc/nginx/sites-available. Это более грамотный и чистый подход, тем более, что и по любой официальной документации, в том числе и Magento 2.
2. Не нужно писать конфиги с ошибками как бы для наглядности. Написали много кода ни о чём. В /etc/nginx/nginx.conf есть строка include /etc/nginx/sites-enabled/*;, что говорит о том, что написанный кусок с map и так находится в блоке http.
3. Вопрос был задан конкретно о переменных и сочетании с SSL. Читайте внимательно документацию и вопросы и не отправляйте других нанимать "специалистов".

1. Конфигурация пишется не /etc/nginx/nginx.conf, а /etc/nginx/sites-available. Это более грамотный и чистый подход, тем более, что и по любой официальной документации, в том числе и Magento 2.
Sylon читайте вниметельней!!!, не пишите глупости и не обвиняйте других в собственных ошибках.
в моём конфиге map не подклчается через /etc/nginx/sites-available , мои конфиги предназначены для моих вариантов и никак не для ваших, не вводите других в заблуждение , ваша невнимательность Sylon, не является моей ошибкой.
если вы не способны воспользоваться предоставленным материалом и адаптировать под ваши нужды - это сугубо ваша проблема.

Там нет никаких примеров на самом деле. С nginx упоминается только $MAGE_RUN_TYPE and $MAGE_RUN_CODE. Вопрос в каком месте файла nginx.conf.sample?
Кто-нибудь пробовал это с https конфигурацией?
в моих конфигах вы смогли увидеть только 2 блока map добавленых в nginx.conf,
а если прочитате внимательно обнаружите изменения и способ применения в nginx.conf.sample , которые как раз и отвечают на ваш вопрос.
смотрите строки
141 и 142 в nginx.conf.sample
fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE;


касательно SSL : SSL предназначен для домена (виртуального хоста или сервера)
способ подключения для разных скриптов (magento, wordpress, prestashop и т.д ) один и тот же, мультистор или нет не имеет значения,
поэтому на сайте мадженто вы не можете найти информацию о подключении SSL
инструкцию для установки и подключения Certbot SSL можно найти Для просмотра ссылки Войди или Зарегистрируйся выбрав соответствующую ось и тип сервер

Не нужно писать конфиги с ошибками как бы для наглядности. Написали много кода ни о чём.
Sylon, как видно, ваш опыт не позволяет правильно прочитать незнакомый вам вариант конфига, так как вы привыкли к своему единственному шаблону конфигурации.
и в случае отличющегося от вашего варианта, вам кажется , что написано с ошибками и/или написано " ни о чем".
не отправляйте других нанимать "специалистов".
"специалистов" или Специалистов,
вам - Sylon, реально рано ещё судить об этом или выставлять подобные оценки .
у вас для этого опыта маловато. поэтому подобное мнение держите при себе или в себе
 
Последнее редактирование:
Всем те, кто использует плагины от Mirasvitпроверьте ваши сайты на взлом. Сервера Mirasvit взломали и через них могли получить доступ и к нашим инсталляциям Magento. Вот официальное письмо-счастье в pdf Для просмотра ссылки Войди или Зарегистрируйся
 
В версии мадженто 2.1.9 проблема - есть интернет-магазин с несколькими валютами, товары, например, в долларах, но, когда я выбираю другую валюту, например, рубль, то происходит неправильная конвертация! Платье стоит 1 доллар, например, а в рублях показывает, что стоит миллион! неправильно, естественно! кто-нибудь знает решение? помогите!
 

Вложения

  • Screen Shot 2017-09-22 at 11.53.44.png
    Screen Shot 2017-09-22 at 11.53.44.png
    41,3 KB · Просмотры: 10
Назад
Сверху