I do the application's URL routing to receive requests from URLs that do not match the actual application files.
index.php
ini_set('display_errors', 1); require_once 'application/bootstrap.php'; bootstrap.php
require_once 'core/Model.php'; require_once 'core/View.php'; require_once 'core/Controller.php'; require_once 'core/Route.php'; Route::start(); .htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] Routing in a separate Route.php file to the core directory. In this file, the Route class that will run the methods of the controllers, which in turn will generate page views.
static function start() { $controller_name = 'Main'; $action_name = 'Index'; $routes = explode('/', $_SERVER['REQUEST_URI']); var_dump($routes); if (!empty($routes[2])) { $controller_name = $routes[2]; } if (!empty($routes[3])) { $action_name = $routes[3]; } $model_name = 'Model' . $controller_name; $controller_name = 'Controller' . $controller_name; $action_name = 'action' . $action_name; $model_file = $model_name . '.php'; $model_path = "application/models/" . $model_file; if (file_exists($model_path)) { include "application/models/" . $model_file; } $controller_file = $controller_name . '.php'; $controller_path = "application/controllers/" . $controller_file; if (file_exists($controller_path)) { include "application/controllers/" . $controller_file; } else { Route::ErrorPage404(); } $controller = new $controller_name; $action = $action_name; print $controller_name; echo "<br/>"; print $action; if (method_exists($controller, $action)) { $controller->$action(); } else { Route::ErrorPage404(); } } function ErrorPage404() { print "trouble"; $host = 'http://' . $_SERVER['HTTP_HOST'] . '/'; header('HTTP/1.1 404 Not Found'); header("Status: 404 Not Found"); header('Location:' . $host . '404'); } When called in the browser line, localhost: 63942 / Server / - calls the controller by default and everything works as it should, but when
localhost: 63942 / Server / Main
localhost: 63942 / Server / Main / index
localhost: 63942 / Server / Server
throws out
404 Not Found PhpStorm 2016.1.2
although I have the handling and output of function ErrorPage404() . and in this case, with these requests, the controllers should work and show the views I need.
to the request localhost: 63342 / Server / index.php already throws out my error
project link to github https://github.com/MaximDzhezhelo/Server
Tell me what the problem is, why do I get 404 Not Found for the necessary request in the browser?
How to handle a browser request and configure routing?