用户网站目录

在多用户系统中,用UserDir指令可以允许每个用户在其宿主目录中拥有一个网络站点。使用URL http://example.com/~username/ 的访问者可以获得用户"username"的宿主目录中的内容或者用UserDir指定的子目录中的内容。

用户网站目录

相关模块

  • 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可以限定被允许使用此功能的用户:

      UserDir enabled

      UserDir disabled root jro fish

上述配置使除了列在disabled中的用户以外的所有用户都可以使用此功能。还可以禁止所有用户而只允许部分用户使用此功能,例如:

      UserDir disabled

      UserDir enabled rbowen krietz

更多的例子请参见UserDir文档。

启用对每个用户都有效的cgi目录

<Directory>指令可以指定每个用户主目录中的一个特定的目录为"允许cgi"的目录,使每个用户都可以拥有自己的cgi-bin目录。

      <Directory /home/*/public_html/cgi-bin/>

       Options ExecCGI

       SetHandler cgi-script

       </Directory>

这样"放肆的"设置使得UserDir被设置成public_html ,CGI程序example.cgi可以用下面的URL从那个目录加载:

    http://example.com/~rbowen/cgi-bin/example.cgi

允许用户改变配置

用户可以通过.htaccess文件改变其网络空间的服务器配置,因此必须确保AllowOverride指令被正确设置,以限定用户只能使用被允许的指令。其细节请参见.htaccess指南