Как заставить все запросы URI индексировать. php? - PullRequest
0 голосов
/ 28 января 2020

В моем index.php (который находится в моем каталоге root проекта) у меня есть базовая c система маршрутизации, которая захватывает URL-адрес (используя $_SERVER[‘REQUEST_URI]) и вызывает соответствующий «контроллер», который затем вызывает соответствующий 'представление' (так, реализация очень основы c MVC). То, что у меня есть в моем index.php, выглядит следующим образом:

$router= Router::load('Routes.php');
$uri=trim($_SERVER['REQUEST_URI'],'/'); 
require $router->direct($uri);

Проблема в том, что я не могу выполнить все запросы go к index.php. Очевидно, что если вы наберете от go до localhost/myproject/, вы получите index.php (следовательно, будет вызван соответствующий контроллер), однако я хочу, чтобы, даже если вы наберете localhost/myproject/contact, сначала будет прямой адрес к index.php. Так что index.php может обработать маршрутизацию для вас.

1 Ответ

0 голосов
/ 28 января 2020

Если вы используете apache, вы можете использовать .htaccess файл для перенаправления каждого запроса в вашем index.php файле:

RewriteEngine On

RewriteRule ^/index\.php$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

Если вы используете nginx сервер, вы можете перенаправить весь запрос в index.php файл с этим кодом в вашем .conf файле:

location / {
    try_files $uri $uri/ /index.php;
}

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...