[英]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請求的來源。 我嘗試了一個額外的requestheader:
SetEnvIf Request_URI "^(.*)$" REQUEST_URI=$1
RequestHeader set X-Request-Uri "%{REQUEST_URI}e"
但是附加請求標頭僅包含重寫的uri。
有什么簡單的方法可以傳遞原始請求uri? 沒有配置proxypass或proxypassreverse。 還是有另一種方式在所有子路徑上提供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']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.