public static function getCurrentURL()
{
$_bSSL = self::isSSL();
$_sServerProtocol = strtolower($_SERVER['SERVER_PROTOCOL']);
$_aProrocolSuffix = array(0 => '', 1 => 's');
$_sProtocol = substr($_sServerProtocol, 0, strpos($_sServerProtocol, '/')) . $_aProrocolSuffix[(int) $_bSSL];
$_sPort = self::_getURLPortSuffix($_bSSL);
$_sHost = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']);
return $_sProtocol . '://' . $_sHost . $_sPort . $_SERVER['REQUEST_URI'];
}