Follow Bellow Steps To Redirect 404 Page When Module is Disable In Magento2
👉 Create a system.xml file in Vendor\Extension\etc\adminhtml\system.xml Folder :
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<section id="mymodule" sortOrder="150" type="text" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Mymodule Label</label>
<tab>mymoduletab</tab>
<resource>Module_First::mymodule_configuration</resource>
<group id="general" translate="label" sortOrder="10" type="text" showInDefault="1" showInWebsite="1" showInStore="1">
<label>General Configuration</label>
<field id="enable" translate="label" sortOrder="10" type="select" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Enable</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
</group>
</section>
</system>
</config>
👉 Create a Data.php file in Vendor\Extension\Helper\Data.php Folder :
<?php
namespace Vendor\Extension\Helper;
use Magento\Framework\App\Helper\AbstractHelper;
use Magento\Framework\App\Helper\Context;
use Magento\Store\Model\ScopeInterface;
class Data extends AbstractHelper
{
protected $context;
public function __construct(Context $context)
{
$this->context = $context;
parent::__construct($context);
}
public function isEnable()
{
return $this->scopeConfig->getValue('mymodule/general/enable', ScopeInterface::SCOPE_STORE);
}
}
👉 You are load helper data method direct using object manager in magento :
<?php
$helper = \Magento\Framework\App\ObjectManager::getInstance()->get('Vendor\Extension\Helper\Data');
if($helper->isEnable()) {
//WRITE YOUR CODE HERE
}
👉 For Example I a'm Redirect page to 404 Page When Module is Disable In Magento2 :
In Controller File Put Bellow Provide Code :
<?php
namespace Vendor\Extension\Controller\Form;
use Vendor\Extension\Helper\Data;
class Index extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;
protected $_forwardFactory;
protected $_moduleManager;
protected $_helperData;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory,
\Magento\Framework\Controller\Result\ForwardFactory $forwardFactory,
\Magento\Framework\Module\Manager $moduleManager,
Data $helperData
)
{
$this->_pageFactory = $pageFactory;
$this->_forwardFactory = $forwardFactory;
$this->_moduleManager = $moduleManager;
$this->_helperData = $helperData;
return parent::__construct($context);
}
public function execute()
{
$module_status = $this->_helperData->isEnable();
if ($module_status){
return $this->_pageFactory->create();
} else {
$resultForward = $this->_forwardFactory->create();
$resultForward->setController('index');
$resultForward->forward('defaultNoRoute');
return $resultForward;
}
}
}