Пытаюсь разобраться с технологией MVC. Браузер выдаёт ошибку 500 (ошибка сервера) На сайте есть такие документы (соединены между собой): Код: http://karandash-konversii.ru/.htaccess В нём код такой: AddDefaultCharset CP1251 RewriteEngine On RewriteBase / RewriteRule ^(.*)$ index.php http://karandash-konversii.ru/index.php В нём такой код: <?php ini_set('display_errore', 1); error_reporting(E_ALL); define('ROOT', dirname(__FILE__)); require_once(ROOT.'/components/router.php'); $router = new Router(); $router->run(); ?> http://karandash-konversii.ru/components/router.php В нём такой код: <?php class Router { private $routes; public function __construct() { $routesPath = ROOT.'/config/routes.php'; $this->routes = include($routesPath); } private function getURI { if (!empty($_SERVER['REQUEST_URI'])) { return trim($_SERVER['REQUEST_URI'], '/'); } } public function run() { $uri = $this->getURI(); foreach($this->routes as $uriPattern=>$path) { if (preg_match("~$uriPattern~", $uri)) { $segments = explode('/', $path); $controllerName = array_shift($segments).'Controller'; $controllerName = ucfirst($controllerName); $actionName = 'action'.ucfirst(array_shift($segments)); $controllerFile = ROOT.'/controllers/'.$controllerName.'.php'; if (file_exists($controllerFile)) { include_once($controllerFile); } $controllerObject = new $controllerName; $result = $controllerObject->$actionName(); if ($result != null) { break; } } } } } ?> http://karandash-konversii.ru/config/routes.php В нём такой код: <?php return array('news'=>'news/index', 'products'=>'product/list'); ?> http://karandash-konversii.ru/controller/NewsController.php В нём такой код: <?php class NewsController { public function actionIndex() { echo 'NewsController actionIndex'; return true; } } ?> http://karandash-konversii.ru/controller/ProductController.php В нём такой код: <?php class ProductController { public function actionList() { echo 'ProductController actionList'; return true; } } ?> При этом замечу, что при переходе на другие файлы, браузер выдаёт ошибку 404, несмотря на то, что в файле .htaccess я сделал перенаправление при всех запросах на файл index.php. Может ошибка в этом документе? И ещё, я не совсем понимаю, как работает элемент «__FILE__» в строке: define('ROOT', dirname(__FILE__)); Кто-нибудь знает, где можно достать информацию по этому элементу?
Это не CMS. Это самописный код, я его видел в одном из видео-курсов, он мне понравился, вот и решил попробовать. Контроллера всего два: NewsController.php и ProductController.php Есть ещё фронтконтроллер - index.php, роутер - router, файл с маршрутами - routes Вопрос с «__FILE__» решён, осталось понять, что с файлом .htaccess - в нём вроде всё правильно, регулярка предельно простая, остальные команды - тоже. Но перенаправление не работает, а может оно и не будет работать, если есть ошибки в php? Или php на работу .htaccess никак не влияет?