Сейчас уже не зачем, просто появился вопрос.
А началось так:
Есть проект, проект достаточно старый и реализован не очень красиво,
нет единой точки входа, есть куча директорий с index.php внутри, которые
копипастят друг друга.
Решили к проекту прикрутить движек с единой точкой входа, реализацией MVC и т.д.
Но при этом сохранить и старый функционал.
То-есть, приходит запрос /bla, работа происходит следующим образом:
— если есть скрипт /bla/index.php, то работает всё по старому,
— если нет, то вызов точки входа нашего движка, он подключает роутер,
определяет контроллер и т.д., при необходимости отправляет сам на 404
Поэтому, первым решением было использовать как раз директиву ErrorDocument.
Какое-то время так и работало, параметры GET парсили из REQUEST_URI, но вот понадобились
параметры POST, и оп-па, их не оказалось.
Перешли на использование редиректа через mod rewrite, так: RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
Это всё понятно, можно вообще не использовать ErrorDocument, а все запросы отправлять на одну точку входа через mod rewrite, и уже эта точка входа подключит роутер, который определит, что отдать, существующий ресурс, или 404-ю и т.д.
Вопрос-то в другом всё-таки.
У меня так и написано, только вместо 404.php — test.php
Да, параметры GET можно найти в $_SERVER['REQUEST_URI'], параметры POST там не нахожу.
Но проблема именно в том, чтобы параметры были там, где должны быть, в $_REQUEST, $_POST или $_GET
Параметры POST там есть?