В настоящее время я использую mod_proxy для обслуживания страницы по всем подпутям (потому что это одностраничное приложение, которое обрабатывает содержимое в зависимости от uri запроса.
RewriteRule ^/(.*)$ %{REQUEST_SCHEME}://%{HTTP_HOST}/ [P,L]
Это работает для части JavaScript. URL браузера остается, например, в / user / 1, но index.php из корня / обслуживается. Спа обслуживает надлежащее содержание, но теперь мне нужно знать запрашиваемое URI также в php.
$_SERVER["REQUEST_URI"]
содержит сейчас / но мне нужно, чтобы получить как-то запрошенный источник URI. Я попытался дополнительный запрос заголовка:
SetEnvIf Request_URI "^(.*)$" REQUEST_URI=$1
RequestHeader set X-Request-Uri "%{REQUEST_URI}e"
но дополнительный заголовок запроса содержит только переписанный URI.
Есть ли простой способ передать исходный запрос URI? Нет проксипассера или проксипассераверса. Или есть другой способ обслужить index.php на всех подпутях и проксирует неправильный подход?
Хорошо, я исправил это путем передачи его через параметр запроса:
RewriteRule ^/(.*)$ %{REQUEST_SCHEME}://%{HTTP_HOST}/?origUrl=$0 [E=ORIG_URI:/$0,P,L,QSA]
И в части PHP я прочитал параметр:
parse_str($_SERVER['QUERY_STRING'], $queryParams);
и использовать его через:
$queryParams['origUrl']
Других решений пока нет …