Как обрабатывать все запросы на сайт с помощь лишь одного файла 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