Apache VirtualHost - ユーザーごとの ProxyPass

Apache VirtualHost - ユーザーごとの ProxyPass

私はApacheを設定して、認証資格情報に基づいてユーザーを異なるパスにリダイレクトしようとしています(htpasswd)。セットアップに成功しましたプロキシパス、これにより、リクエストをカスタム パスにリダイレクトできますが、すべてのユーザーが同じパスにリダイレクトされるようになりました。これは、すべて<Location />のユーザーに同じディレクティブを使用しているために発生します。 、、... を試したところ、意図したとおりに動作しますが、提供された資格情報に基づいて、Apache が場所を適切なパスに転送するようにしたいと思います。これは可能ですか?<Location /user123><Location /user456>/

答え1

mod_rewrite を使用した Apache を調べています。次のようなことができると思います。remote_user 変数は、設定で Apache に使用できます。次のようなことができると思います。

RewriteCond "%{REMOTE_USER}"  "!^$"
RewriteRule "^/(.*)"  "/$1/%{REMOTE_USER}" [R]

条件は、リモート ユーザーが空の文字列ではない値で存在する場合は、URL をリモート URL で書き換えるというものです。リダイレクトマッチも実行できます。

RedirectMatch "^/(.*)" "/$1/%{REMOTE_USER}"

ここに私の参考資料があります。これはmod_rewriteで利用可能な変数を示しています 詳しくは、http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html をご覧ください。

これはmod_rewriteの動作例です 再書き込み

答え2

質問を詳しく見てみると、Apache インスタンスを使用して htpasswd ファイルで認証しているので、REMOTE_USER 変数を参照できると思います。

Apache 設定で次のようなものを使用できると思います。

ProxyPass / http://localhost:8080/%{REMOTE_USER}/
ProxyPassReverse / http://localhost:8080/%{REMOTE_USER}/

関連情報