/**
  * Allows a redirection URL respecting the HTTP status code for search engines friendly.
  *
  * @static
  * @param string $sUrl Default NULL, so it's the current URL.
  * @param string $sMessage Default NULL, so no message.
  * @param string $sType Type of message: "success", "info", "warning" or "error". Default: "success".
  * @param integer $iRedirectCode Default NULL, so the redirect code will be "301".
  * @return void
  */
 public static function redirect($sUrl = null, $sMessage = null, $sType = 'success', $iRedirectCode = null)
 {
     if (!Http::getStatusCodes($iRedirectCode)) {
         $iRedirectCode = 301;
     }
     Http::setHeadersByCode(Http::getStatusCodes($iRedirectCode));
     $oHttpRequest = new HttpRequest();
     $sUrl = !empty($sUrl) ? $sUrl : $oHttpRequest->currentUrl();
     $sUrl = $oHttpRequest->pH7Url($sUrl);
     unset($oHttpRequest);
     if (!empty($sMessage)) {
         (new \PH7\Framework\Layout\Html\Design())->setFlashMsg($sMessage, $sType);
     }
     header('Location: ' . $sUrl);
     exit;
 }