
인증 자격 증명을 기반으로 사용자를 다른 경로로 리디렉션하도록 Apache를 구성하려고 합니다.htpasswd). 설정에 성공했어요프록시패스, 이를 통해 요청을 사용자 정의 경로로 리디렉션할 수 있지만 이제 모든 사용자가 동일한 경로로 리디렉션됩니다. 이는 <Location />
모든 사용자에게 동일한 지시문을 사용하기 때문에 발생합니다 . <Location /user123>
, ,..을(를) 시도하면 의도한 대로 작동하지만 Apache가 제공된 자격 증명을 기반으로 적절한 경로로 위치를 <Location /user456>
전달하고 싶습니다 . /
이것이 가능한가?
답변1
mod_rewrite로 아파치를 살펴봅니다. 나는 당신이 다음과 같은 일을 할 수 있다고 믿습니다. Remote_user 변수는 구성에서 Apache에 사용할 수 있습니다. 나는 당신이 다음과 같은 일을 할 수 있다고 믿습니다.
RewriteCond "%{REMOTE_USER}" "!^$"
RewriteRule "^/(.*)" "/$1/%{REMOTE_USER}" [R]
조건은 빈 문자열이 아닌 값을 가진 원격 사용자가 존재하는 경우 원격 URL로 URL을 다시 작성한다는 것입니다. 또한 리디렉션 일치를 수행할 수도 있습니다.
RedirectMatch "^/(.*)" "/$1/%{REMOTE_USER}"
여기 내 참고 자료가 있습니다. 이것은 mod_rewrite에 사용 가능한 변수를 보여줍니다. https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
이것은 작동 중인 mod_rewrite의 예를 보여줍니다. https://httpd.apache.org/docs/2.4/rewrite/remapping.html
답변2
htpasswd 파일을 사용하여 인증하기 위해 Apache 인스턴스를 사용하고 있으므로 질문을 더 자세히 살펴보십시오. REMOTE_USER 변수를 참조할 수 있다고 생각합니다.
나는 당신이 아파치 설정에서 다음과 같은 것을 사용할 수 있다고 믿습니다.
ProxyPass / http://localhost:8080/%{REMOTE_USER}/
ProxyPassReverse / http://localhost:8080/%{REMOTE_USER}/