Apache mod_proxy使用简单代理获取origin uri

时间:2015-04-14 08:16:10

标签: php apache reverse-proxy mod-proxy

目前我使用mod_proxy在所有子路径上提供页面(导致其单页应用程序根据请求uri处理内容。

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

这适用于javascript部分。浏览器URL保留在例如/ user / 1,但是来自root /的index.php被提供。水疗中心提供适当的内容,但现在我需要知道所请求的uri也在php。

$_SERVER["REQUEST_URI"]

现在包含/但我需要以某种方式得到原始请求的uri。我尝试了另一个请求标题:

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

但附加请求标头仅包含重写的uri。

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

1 个答案:

答案 0 :(得分:0)

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

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

在php部分我读了参数:

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

并通过以下方式使用:

$queryParams['origUrl']