Przekierowanie 404 w IPB 4 działa na poziomie routingu (oczywiście jeżeli jest włączona opcja przyjaznych adresów URL), w momencie kiedy aplikacja nie wykryje trasy, wyświetli błąd 404.
Plik: system\Dispatcher\Front.php
elseif ( !( $url instanceof \IPS\Http\Url\Internal ) or $url->base !== 'front' )
{
/* Call the parent first in case we need to redirect to https, and so the correct locale, etc. is set */
try
{
parent::init();
}
catch ( \Exception $e ) { }
/* Display a 404 */
$this->application = \IPS\Application::load('core');
$this->setDefaultModule();
if ( \IPS\Member::loggedIn()->isBanned() )
{
\IPS\Output::i()->sidebar = FALSE;
\IPS\Output::i()->bodyClasses[] = 'ipsLayout_minimal';
}
\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js( 'app.js' ) );
\IPS\Output::i()->error( 'requested_route_404', '1S160/2', 404, '' );
}