Директории веб-сайтов пользователей
В системах с несколькими пользователями каждый пользователь может иметь свой веб-сайт в своей домашней директории с помощью директивы UserDir. Посетители URL http://example.com/~username/ получат содержимое из домашней директории пользователя "username" из поддиректории, указанной директивой UserDir.
Обратите внимание, что по умолчанию доступ к этим директориям не включен. Вы можете включить доступ при использовании UserDir, раскомментировав строку:
#Include conf/extra/httpd-userdir.conf
в файле конфигурации по умолчанию conf/httpd.conf, и при необходимости адаптировав файл httpd-userdir.conf, или включив соответствующие директивы в блок <Directory> в главном файле конфигурации.
Директории веб-сайтов пользователей
| Связанные модули | Связанные директивы |
|---|---|
Установка пути к файлам с помощью UserDir
Директива UserDir указывает директорию, из которой загружается содержимое для каждого пользователя. Эта директива может иметь несколько различных форм.
Если путь указан без ведущей косой черты, предполагается, что это путь к директории относительно домашней директории указанного пользователя. Учитывая эту конфигурацию:
UserDir public_html
URL http://example.com/~rbowen/file.html будет преобразован в путь к файлу /home/rbowen/public_html/file.html
Если путь начинается с косой черты, путь к директории будет построен, используя этот путь и имя пользователя. Учитывая эту конфигурацию:
UserDir /var/html
URL http://example.com/~rbowen/file.html будет преобразован в путь к файлу /var/html/rbowen/file.html
Если путь содержит звездочку (*), используется путь, в котором звездочка заменяется именем пользователя. Учитывая эту конфигурацию:
UserDir /var/www/*/docs
URL http://example.com/~rbowen/file.html будет преобразован в путь к файлу /var/www/rbowen/docs/file.html
Также можно установить несколько директорий или путей к директориям.
UserDir public_html /var/html
Для URL http://example.com/~rbowen/file.html, Apache будет искать ~rbowen. Если он не найден, Apache будет искать rbowen в /var/html. Если найден, указанный URL будет преобразован в путь к файлу /var/html/rbowen/file.html
Перенаправление на внешние URL-адреса
Директива UserDir может использоваться для перенаправления запросов к директориям пользователей на внешние URL-адреса.
UserDir http://example.org/users/*/
Приведённый пример перенаправит запрос к http://example.com/~bob/abc.html на http://example.org/users/bob/abc.html.
Ограничение доступа для пользователей
Используя синтаксис, показанный в документации по UserDir, можно ограничить доступ для пользователей к этой функциональности:
UserDir disabled root jro fish
Указанная конфигурация включит функцию для всех пользователей, кроме тех, которые перечислены в инструкции disabled. Аналогично, можно отключить эту функцию для всех, кроме нескольких пользователей, используя конфигурацию, подобную следующей:
UserDir disabled UserDir enabled rbowen krietz
Дополнительные примеры см. в документации по UserDir.
Включение cgi-каталога для каждого пользователя
Чтобы предоставить каждому пользователю свой cgi-bin каталог, можно использовать директиву <Directory> для включения cgi в определённой поддиректории домашней директории пользователя.
<Directory "/home/*/public_html/cgi-bin/">
Options ExecCGI
SetHandler cgi-script
</Directory> Тогда, предполагая, что UserDir установлено как public_html, cgi-программу example.cgi можно загрузить из этой директории следующим образом:
http://example.com/~rbowen/cgi-bin/example.cgiРазрешение пользователям изменять конфигурацию
Если вы хотите разрешить пользователям изменять конфигурацию сервера в своём веб-пространстве, они должны использовать файлы .htaccess для внесения этих изменений. Убедитесь, что вы установили AllowOverride в значение, достаточное для директивы, которую вы хотите разрешить пользователям изменять. Дополнительные сведения о работе с этим см. в .htaccess руководстве.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/howto/public_html.html