在多用户系统中,用UserDir
指令可以允许每个用户在其宿主目录中拥有一个网络站点。使用URL http://example.com/~username/
的访问者可以获得用户"username
"的宿主目录中的内容或者用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
文档。
<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指南。