たとえば、mydomain.comというドメインがあり、その下に3つのディレクトリがdir1、dir2、dir3と呼ばれているとすると、htpasswdファイルをWebルートに配置して、認証されたユーザーをそれぞれのディレクトリにリダイレクトすることができます(例:ユーザーjoecorleone101は、認証されると常にdir3にリダイレクトされます。)?
まず第一に、これが可能かどうかを知りたいのですが、第二に、それは安全か実用的(または非実用的)ですか?私はそれを間違った方法で考えていますか?多分htaccessファイルを使うべきですか?
Apache mod_rewrite はあなたの友達で、HTTPヘッダーを使用できます。
RewriteEngine On
RewriteCond %{REMOTE_USER} ^joecorleone101$
RewriteRule .* dir3/ [R,L]
置換部分でREMOTE_USERを使用することもできます。
RewriteCond %{REMOTE_USER} ^.*$
RewriteRule .* %{REMOTE_USER}/ [R,L]
これも.htaccessから機能しますが、動作にいくつかの違いがあります。ディレクトリはパターンマッチングで削除され、置換部分に追加されます。
RewriteCondで一致した値を使用するには、%N(1 <= N <= 9)を使用できます。
RewriteCond %{REMOTE_USER} (\d{3})$
RewriteRule .* http://www.example.com/%1 [R,L]