This is tested code
Vendor/Siteinfo/etc/registration.xml
registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Vendor_Siteinfo',
__DIR__
);
Vendor/Siteinfo/etc/module.xml
module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Siteinfo" setup_version="1.0.0">
</module>
</config>
Vendor/Siteinfo/etc/frontend/routes.xml
routes.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route frontName="siteinfo" id="siteinfo">
<module name="Vendor_Siteinfo"/>
</route>
</router>
</config>
Vendor/Siteinfo/Block/Siteinfo.php
Siteinfo.php
<?php
namespace Vendor\Siteinfo\Block;
class Siteinfo extends \Magento\Framework\View\Element\Template
{
protected $_storeManager;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Store\Model\StoreManagerInterface $storeManager
) {
$this->_storeManager = $storeManager;
parent::__construct($context);
}
public function getStoreInfo()
{
echo $this->_storeManager->getStore()->getId() . '<br />';
// by default: URL_TYPE_LINK is returned
echo $this->_storeManager->getStore()->getBaseUrl() . '<br />';
echo $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB) . '<br />';
echo $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK) . '<br />';
echo $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) . '<br />';
echo $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_STATIC) . '<br />';
echo $this->_storeManager->getStore()->getUrl('product/33') . '<br />';
echo $this->_storeManager->getStore()->getCurrentUrl(false) . '<br />';
echo $this->_storeManager->getStore()->getBaseMediaDir() . '<br />';
echo $this->_storeManager->getStore()->getBaseStaticDir() . '<br />';
}
}
Vendor/Siteinfo/view/frontend/templates/storename.phtml
storename.phtml
<h2>Store Info </h2>
<?php $block->getStoreInfo(); ?>
Vendor/Siteinfo/Controller/Storeinfo/Storeinfo.php
Storeinfo.php
<?php
namespace Vendor\Siteinfo\Controller\Storeinfo;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
class Storeinfo extends \Magento\Framework\App\Action\Action
{
protected $resultPageFactory;
public function __construct(
Context $context,
PageFactory $resultPageFactory,
) {
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
return $this->resultPageFactory->create();
}
}
Vendor/Siteinfo/view/frontend/layout/siteinfo_storeinfo_storeinfo.xml
siteinfo_storeinfo_storeinfo.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<title>SiteInfo</title>
</head>
<body>
<block class="Vendor/Siteinfo/Block/Siteinfo" name="storelocator_index_index" template="Vendor_Siteinfo::storename.phtml" />
</body>
</page>
run magento command
php bin/magento s:up
php bin/magento s:s:d -f
php bin/magento c:c
php bin/magento c:f
now you check it into your url
http://example/m234/siteinfo/storeinfo/storeinfo