1

htacess で次のことを達成しようとしています:

** 管理ユーザー **

/dir  <= has access to directory listing or parent dir
/dir/subdir-n  <= has access to directory listing of any sub-dir

** クライアントユーザー **

/dir  <= DOES NOT have access to directory listing or parent dir (preferably Directory Index that points to a blank index.html file)
/dir/subdir-n  <= has access to directory listing of any sub-dir

基本的に、管理者が管理者ログインですべてのサブディレクトリのリストを表示できるようにし、個々のクライアントが通信するディレクトリのみを表示できるようにする必要がありますが、すべて同じログイン名です。

4

1 に答える 1

1

これは、サブディレクトリごとに異なるhtpasswdファイルで可能になるはずです。

adminuserの場合、login:pwペアを作成/dirし、adminuser login:pwのみを持つファイルからのauthユーザーが必要です。

clientuserの場合、そのユーザーのlogin:pwペアを作成し、そのディレクトリの同じ.htpasswdファイルの新しい行にadminuser login:pwペアを追加します。

このように、管理者はすべてのdirを確認できますが、clientuserは自分のdirのみを確認できます。

明確にするために、ここにあなたが持っているであろうファイルがあります:

/dir
/subdiruser1
/subdiruser1/.htaccess
...
/.htaccess
/.htpasswdadmin
/.htpasswduser1

.htpasswdadminには、次の1行があります。

admin:weofj2p8jöeoif2p84

.htpasswduser1には、次の2行があります。

user1:we2pr832urp823rpup
admin:weofj2p8jöeoif2p84

htpasswdファイルには任意の名前を付けることができますが、多くのapache構成がそのようなファイル名へのWebアクセスをブロックするため、.htで始めることが望ましいことに注意してください。さらに、私の例のように、.htpasswdファイルをWebルートでアクセスできるようにするのではなく、Webからアクセスできないフォルダーに保存する必要があります。最後にもう1つ注意してください。新しい管理者パスワードを変更または追加する必要がある場合は、その制限があります。そのlogin:pwペアをすべてのサブディレクトリ.htpasswdファイルに追加する必要があります。

誰かがこれに対するより良い解決策を持っているなら、私は非常に興味があります。

于 2012-03-19T14:17:50.290 に答える