Так не прокатит?
AddEventHandler("main", "OnEpilog", "Redirect404" ;
function Redirect404() {
if(!defined('ADMIN_SECTION') &&
defined("ERROR_404" &&
file_exists($_SERVER["DOCUMENT_ROOT"]."/404.php"
)
{
global $APPLICATION;
$APPLICATION->RestartBuffer();
CHTTP::SetStatus("404 Not Found" ;
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php" ;
include($_SERVER["DOCUMENT_ROOT"]."/404.php" ;
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php" ;
}
}
AddEventHandler("main", "OnEpilog", "Redirect404" ;
function Redirect404() {
if(!defined('ADMIN_SECTION') &&
defined("ERROR_404" &&
file_exists($_SERVER["DOCUMENT_ROOT"]."/404.php"
)
{
global $APPLICATION;
$APPLICATION->RestartBuffer();
CHTTP::SetStatus("404 Not Found" ;
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php" ;
include($_SERVER["DOCUMENT_ROOT"]."/404.php" ;
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php" ;
}
}