У меня очень простой mvc с небольшим диспетчером, я получаю url и разбиваю его. Затем я ищу конкретный класс и метод в классе, если такой не найден, из двух я бросаю страницу ошибок с изображением и заголовком. В ошибочном имени класса в URL-адресе я получаю то, что ожидаю, но если у меня есть действительное имя класса и недопустимое имя метода, я получаю в другом месте, а оттуда получаю желаемый 404-код и заголовок, но изображение не может быть отображено , потому что я застрял с добавленным /something/Assets/notfound.jpg в моем URL-адресе запроса.
Мой тестовый URL:
http://localhost/php-mvc/users/
Что я получаю в запросеURL:
] Вот мой код в диспетчере (index.php):
";
$filePart = $_SERVER['PHP_SELF'];
$urlPart = $_SERVER['REQUEST_URI'];
$cuttingPart = str_replace(basename(__FILE__), '', $filePart);
$realPart = str_replace($cuttingPart, '', $urlPart );
$urlArray = explode('/', $realPart);
$urlClass = 'Controllers\\'.ucfirst(array_shift($urlArray)).'Controller';
$urlMethod = array_shift($urlArray);
if(class_exists($urlClass)){
if(is_callable(array($urlClass, $urlMethod))){
call_user_func_array([$urlClass, $urlMethod], $urlArray);
}
else{
$error = new ErrorController();
$error->throwError();
}
}
else{
$error = new ErrorController();
$error->throwError();
}
My ErrorController ():
My ErrorView.php:
Error!
и мой каталог:
Попробуйте это вместо
<img src="../Assets/notfound.jpg">