Apache mod_proxy 使用简单代理获取原始 uri

Apache mod_proxy obtain origin uri with simple proxy

目前我使用 mod_proxy 在所有子路径上提供页面(因为它是一个单页应用程序,它根据请求 uri 处理内容。

RewriteRule ^/(.*)$ %{REQUEST_SCHEME}://%{HTTP_HOST}/ [P,L]

这适用于 javascript 部分。例如,浏览器 url 停留在 /user/1 但来自根 / 的 index.php 被提供。水疗中心提供适当的内容,但现在我还需要在 php.

中知道请求的 uri
$_SERVER["REQUEST_URI"]

现在包含 / 但我需要以某种方式获取源请求的 uri。我尝试了一个额外的请求头:

SetEnvIf Request_URI "^(.*)$" REQUEST_URI=
RequestHeader set X-Request-Uri "%{REQUEST_URI}e"

但是附加的请求头只包含重写的uri。

有什么简单的方法可以传递原始请求 uri 吗?没有配置 proxypass 或 proxypassreverse。或者是否有另一种方法在所有子路径上提供 index.php 并且代理错误的方法?

好的,我通过查询参数传递它来修复它:

RewriteRule ^/(.*)$ %{REQUEST_SCHEME}://%{HTTP_HOST}/?origUrl=[=10=] [E=ORIG_URI:/[=10=],P,L,QSA]

在 php 部分我读了参数:

parse_str($_SERVER['QUERY_STRING'], $queryParams);

并通过以下方式使用它:

$queryParams['origUrl']