Magento core url helper allows you to get current url.
To get current url in magento you just need one line of code as below:
ref: public function getCurrentUrl()
$magentoCurrentUrl = Mage::helper('core/url')->getCurrentUrl();
You can also get current url as base64 encoded url as:
$magentoCurrentUrlBase64 = Mage::helper('core/url')->getCurrentBase64Url();
or,
$magentoCurrentUrlBase64 = Mage::helper('core/url')->getEncodedUrl($url);
// $url is optional
Same helper allows you to get home url which is base url:
$magentoHomeUrl = Mage::helper('core/url')->getHomeUrl();
Source: app\code\core\Mage\Core\Helper\Url.php
Functions used above as they appear on magento core url helper are as below:
/**
* Retrieve current url
*
* @return string
*/
public function getCurrentUrl()
{
$request = Mage::app()->getRequest();
$port = $request->getServer('SERVER_PORT');
if ($port) {
$defaultPorts = array(
Mage_Core_Controller_Request_Http::DEFAULT_HTTP_PORT,
Mage_Core_Controller_Request_Http::DEFAULT_HTTPS_PORT
);
$port = (in_array($port, $defaultPorts)) ? '' : ':' . $port;
}
$url = $request->getScheme() . '://' . $request->getHttpHost() . $port . $request->getServer('REQUEST_URI');
return $url;
}
/**
* Retrieve current url in base64 encoding
*
* @return string
*/
public function getCurrentBase64Url()
{
return $this->urlEncode($this->getCurrentUrl());
}
public function getEncodedUrl($url=null)
{
if (!$url) {
$url = $this->getCurrentUrl();
}
return $this->urlEncode($url);
}
/**
* Retrieve homepage url
*
* @return string
*/
public function getHomeUrl()
{
return Mage::getBaseUrl();
}
Correct way to find the current url:
if (!in_array(Mage::app()->getFrontController()->getAction()->getFullActionName(), array('cms_index_noRoute', 'cms_index_defaultNoRoute'))) {
$currentUrl = Mage::helper('core/url')->getCurrentUrl();
}
Source: http://www.blog.magepsycho.com/how-to-find-current-url-in-magento/