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']
目前我使用 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']