
私は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}/