Модуль 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.
Если ни ключевое слово enabled, ни ключевое слово disabled не указаны в директиве Userdir, аргумент обрабатывается как шаблон имени файла и используется для преобразования имени в спецификацию директории. Запрос на 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 public_html предполагалось, если директива UserDir отсутствовала.
Объединение данных
Списки конкретных разрешенных и запрещенных пользователей замещаются, а не объединяются, от глобального до уровня виртуального хоста
См. также
© 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