Как обрабатывать все запросы на сайт с помощь лишь одного файла PHP (контроллера)

Допустим, клиент запрашивает ресурс (GET) по адресу http://example.com/hello-world, или же отправляет заполненную форму (POST) по адресу http://example.com/signin-form. Мне нужно, чтобы все эти запросы принимал и обрабатывал лишь один PHP файл — то есть выступал в роли контроллера. И даже если такой страницы не существует, нужно чтобы он всё равно на него «реагировал».

Это возможно сделать и как? Пожалуйста, расскажите про это подробней или дайте ссылку на источник информации.


Ответы (1 шт):

Автор решения: Алексей Шиманский

Всё что нужно, это в корень сайта добавить файл .htaccess со строчками

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

тогда все запросы будут идти через index.php


P.S. Это касается если сервер - apache. В нём же в настроках должно быть прописано AllowOverride All Если nginx - точно сказать не могу


P.S.2 Стоит заметить, что направдение в один файл не заставит работать полную маршрутизацию на сайте, надо самому разбирать URL и направлять в нужные файлы, т.е. надо чтобы была маршрутизация. Но направление через одну точку входа даёт как раз возможность писать и контроллеры и пр в духе MVC

→ Ссылка