Spec-Zone.ru › Apache HTTP Server

Директории веб-сайтов пользователей

В системах с несколькими пользователями каждый пользователь может иметь свой веб-сайт в своей домашней директории с помощью директивы UserDir. Посетители URL http://example.com/~username/ получат содержимое из домашней директории пользователя "username" из поддиректории, указанной директивой UserDir.

Обратите внимание, что по умолчанию доступ к этим директориям не включен. Вы можете включить доступ при использовании UserDir, раскомментировав строку:

#Include conf/extra/httpd-userdir.conf

в файле конфигурации по умолчанию conf/httpd.conf, и при необходимости адаптировав файл httpd-userdir.conf, или включив соответствующие директивы в блок <Directory> в главном файле конфигурации.

Директории веб-сайтов пользователей

Связанные модули Связанные директивы
  • mod_userdir
  • UserDir
  • DirectoryMatch
  • AllowOverride

Установка пути к файлам с помощью 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API