Модуль Apache mod_userdir
| Описание: | Каталоги пользователей |
|---|---|
| Статус: | Базовый |
| Идентификатор модуля: | userdir_module |
| Исходный файл: | mod_userdir.c |
Краткое описание
Этот модуль позволяет обращаться к каталогам пользователей с помощью синтаксиса http://example.com/~user/.
Директива UserDir
| Описание: | Расположение каталогов пользователей |
|---|---|
| Синтаксис: | UserDir directory-filename [directory-filename] ... |
| Контекст: | конфигурация сервера, виртуальный хост |
| Статус: | Базовый |
| Модуль: | mod_userdir |
Директива UserDir задаёт фактический каталог в домашнем каталоге пользователя, который следует использовать при получении запроса на документ пользователя. Имя каталога или файла — это одно из следующего:
- Имя каталога или шаблон, например, показанные ниже.
- Ключевое слово
disabled. Оно отключает все преобразования имени пользователя в имя каталога, кроме явно указанных с помощью ключевого словаenabled(см. ниже). - Ключевое слово
disabled, за которым следует список имён пользователей, разделённых пробелами. Для имён пользователей из этого списка никогда не будет выполняться преобразование в каталог, даже если они указаны в условииenabled. - Ключевое слово
enabled, за которым следует список имён пользователей, разделённых пробелами. Для этих пользователей будет выполняться преобразование в каталог, даже если оно глобально отключено, но не в том случае, если они также указаны в условииdisabled.
Если в директиве Userdir не указаны ключевые слова enabled или disabled, аргумент рассматривается как шаблон имени файла и используется для преобразования имени в спецификацию каталога. Запрос к http://www.example.com/~bob/one/two.html будет преобразован в:
| Используемая директива UserDir | Преобразованный путь |
|---|---|
| UserDir public_html | ~bob/public_html/one/two.html |
| UserDir /usr/web | /usr/web/bob/one/two.html |
| UserDir /home/*/www | /home/bob/www/one/two.html |
Следующие директивы будут отправлять клиенту перенаправления:
| Используемая директива UserDir | Преобразованный путь |
|---|---|
| UserDir http://www.example.com/users | http://www.example.com/users/bob/one/two.html |
| UserDir http://www.example.com/*/usr | http://www.example.com/bob/usr/one/two.html |
| UserDir http://www.example.com/~*/ | http://www.example.com/~bob/one/two.html |
"UserDir ./" преобразует "/~root" в "/", что, вероятно, нежелательно. Настоятельно рекомендуется включить в конфигурацию объявление "UserDir disabled root". Дополнительные сведения см. также в директиве Directory и на странице Советы по безопасности. Дополнительные примеры:
Чтобы разрешить нескольким пользователям иметь каталоги UserDir, но запретить это всем остальным, используйте следующую настройку:
UserDir disabled UserDir enabled user1 user2 user3
Чтобы разрешить большинству пользователей иметь каталоги UserDir, но запретить это нескольким пользователям, используйте следующую настройку:
UserDir disabled user4 user5 user6
Также можно указать альтернативные каталоги пользователей. Если использовать команду вида:
UserDir "public_html" "/usr/web" "http://www.example.com/"
При запросе к http://www.example.com/~bob/one/two.html сначала будет предпринята попытка найти страницу в ~bob/public_html/one/two.html, затем в /usr/web/bob/one/two.html, а в конце клиенту будет отправлено перенаправление на http://www.example.com/bob/one/two.html.
Если вы добавляете перенаправление, оно должно быть последней альтернативой в списке. Apache httpd не может определить, было ли перенаправление успешным, поэтому, если поместить его раньше в списке, эта альтернатива будет использоваться всегда.
В версиях 2.1.4 и более поздних подстановка пользовательских каталогов по умолчанию не выполняется. В более ранних версиях, если директива UserDir отсутствовала, предполагалось значение UserDir public_html.
Особенности объединения
Списки конкретных пользователей, для которых функция включена или отключена, заменяются, а не объединяются при переходе от глобальной области конфигурации к области виртуального хоста
См. также
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_userdir.html