У меня есть сайт, построенный на MVC, и мне интересно, где находится правильное место для размещения http_response_code(404)
линия, например. У меня есть функция во внешнем functions.php
файл. Я думаю, что это глупо, но в то время я нашел способ сделать это.
Итак, вот мой redirect
функция:
function redirect($to, $response_code = null)
{
if(isset($response_code)) $_SESSION['response_code'] = $response_code;
header('Location: ' . $to);
exit();
}
Где я бы положил 404 или любой другой код ответа, а затем в моем header.php
файл шаблона отправляю код ответа в браузер:
if(isset($_SESSION['response_code'])) {
http_response_code($_SESSION['response_code']);
unset($_SESSION['response_code']);
}
Таким образом, я проверяю, что когда пользователь посещает несуществующую страницу, он перенаправляется на пользовательскую страницу 404, а на вкладке «Сеть» в консоли разработчика браузера код ответа — 404.
Но я не уверен, что это правильный способ, или я должен показать код ответа перед перенаправлением на пользовательскую страницу 404. Другими словами, модифицируя redirect
функционировать так:
function redirect($to, $response_code = null)
{
http_response_code($response_code);
header('Location: ' . $to);
exit();
}
Задача ещё не решена.
Других решений пока нет …