Назад | Перейти на главную страницу

В apache, как вы проверяете, что зарегистрированное имя пользователя соответствует имени каталога?

Иногда вы хотите настроить структуру каталогов в apache, чтобы зарегистрированные пользователи могли видеть только свой собственный каталог. (т.е. имя каталога и имя пользователя совпадают.)

Что вы вводите в конфигурацию, чтобы apache это проверил?

Идея в том, что люди просто просматривают /directory/ и введите их имя пользователя и пароль. Затем он перенаправит их на /directory/username/ и убедитесь, что каталог и имя пользователя совпадают, если они попытаются перейти в другой каталог.

AuthType Basic
AuthName "Your Realm Name"
Order allow,deny
AuthUserFile .......
Require valid-user

RewriteEngine On
#If just to /directory then redirect to the per user area
RewriteRule ^$ /directory/%{REMOTE_USER} [R,L]
#WARNING: make sure usernames can't have slashes in them
#grab the directory from the URL from RewriteRule (it's called $1)
#use a REGEX backreference to see if $1 equals %{REMOTE_USER} with a slash in between for performance
RewriteCond $1/%{REMOTE_USER} !^([^/]+)/\1$
#If they don't match then give them a fail page
RewriteRule ^([^/]+) - [F]