Перенаправление на домашнюю страницу


Я совершенно новичок в Magento (много раньше использовал WordPress и сайты с нуля), и я не могу понять, как изменить домашнюю страницу, чтобы на ней отображалась страница входа.

Я использую стандартную тему luma, так что уже есть существующая страница, я хотел бы перенаправить контроллер на URL-адрес входа, но ни за что на свете не могу понять архитектуру.

Надеясь решить эту простую проблему. Пожалуйста, помогите мне понять Magento лучше.
Заранее благодарю

Author: fmsthird, 2016-09-13

2 answers

Сначала создайте простой модуль, обратитесь к этой ссылке для пошаговой реализации, после чего следуйте инструкциям.

Домашняя страница по умолчанию для luma - cms/индекс/индекс, поэтому вам нужно переопределить этот контроллер для перенаправления.

Для переопределения контроллера добавьте нижеприведенный контент в свой app/code/vendor/namespace/etc/di.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
    <preference for="Magento\Cms\Controller\Index\Index" type="MyVendor\MyNamespace\Controler\Index\Redirecthome" />
</config>

Новый пользовательский контроллер: app/code/Vendor/namespace/Controler/Index/Redirecthome.php

<?php
namespace MyVendor\MyNamespace\Controller\Index;
class Redirecthome extends \Magento\Framework\App\Action\Action
{
    protected $resultForwardFactory;
    public function __construct(
        \Magento\Framework\App\Action\Context $context,
        \Magento\Framework\Controller\Result\ForwardFactory $resultForwardFactory
    ) {
        $this->resultForwardFactory = $resultForwardFactory;
        parent::__construct($context);
    }

    public function execute($coreRoute = null)
    {
       $this->_redirect('customer/account/login');
                return;
    }
}

Теперь на домашней странице используется указанный выше контроллер вместо стандартного. Я проверил, что это работает.

От администратора: Это тоже возможно от администратора

Домашняя страница:

store -> configuration -> General -> Web -> Default pages -> here you can chnge **cms** to **customer/account/login**

Перенаправление

marketing -> url rewrite -> add new url rewrite -> here you can set request path as **cms** and target path as **customer/account/login**
 1
Author: Bilal Usean, 2016-09-13 17:07:05

Лучшее решение - не писать никакого дополнительного кода.

Перейдите на страницу Администратора.

Выберите Маркетинг =>Переписывает URL-адрес

Нажмите кнопку Добавить Перезапись URL-адреса

Установите для параметра "Перезапись URL-адреса" значение "Пользовательский"

Хранить как "Представление хранилища по умолчанию".

Путь запроса как "\"

Целевой путь как "Все, что вы хотите"

Тип перенаправления "Все, что вы хотите"

Описание как "Все, что вы хотите"

Сохраните его. И проверьте. Нет необходимости писать что-то лишнее.

 0
Author: Avesh Naik, 2019-03-25 06:16:18