В этом случае вы можете использовать маршрутизацию запросов, выполнив следующие действия:
- создайте di.xml в YourVendor / YourModule / etc / di.xml с этим содержимым:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Framework\App\RouterList">
<arguments>
<argument name="routerList" xsi:type="array">
<item name="custom_router" xsi:type="array">
<item name="class"
xsi:type="string">YourVendor\YourModule\Controller\Router
</item>
<item name="disable" xsi:type="boolean">false</item>
<item name="sortOrder" xsi:type="string">70</item>
</item>
</argument>
</arguments>
</type>
</config>
Создайте класс Router, который реализует RouterInterface, как показано ниже:
Класс Router реализует \ Magento \ Framework \ App \ RouterInterface {private $ actionFactory;
/**
* Router constructor.
* @param \Magento\Framework\App\ActionFactory $actionFactory
*/
public function __construct(\Magento\Framework\App\ActionFactory $actionFactory)
{
$this->actionFactory = $actionFactory;
}
public function match(\Magento\Framework\App\RequestInterface $request)
{
$info = $request->getPathInfo();
if (preg_match("%^/(var1/var2)(.*?)$%", $info, $m)) {
$request->setPathInfo(str_replace('var1/var2', '', $info));
return $this->actionFactory->create('Magento\Framework\App\Action\Forward',
['request' => $request]);
}
return null;
}
}
Запустите эту команду:
php bin / magento s: up
Введите ваш URL-адрес, например www.example.com/var1/var2 и посмотри результат