현재 저는 mod_proxy를 사용하여 모든 하위 경로에서 페이지를 제공합니다 (왜냐하면 요청 URI에 따라 콘텐츠를 처리하는 단일 페이지 응용 프로그램이기 때문입니다.
RewriteRule ^/(.*)$ %{REQUEST_SCHEME}://%{HTTP_HOST}/ [P,L]
이것은 자바 스크립트 부분에서 작동합니다. 브라우저 URL은 예를 들어 / user / 1에 있지만 루트 /의 index.php가 제공됩니다. 스파는 적절한 콘텐츠를 제공하지만 이제는 PHP에서도 요청 된 URI를 알아야합니다.
$_SERVER["REQUEST_URI"]
지금 /을 포함하지만 어떻게 든 원산지가 uri를 요청해야합니다. 추가 요청 헤더를 시도했습니다.
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']
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다