多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 用户网站目录 在多用户系统中,用`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指南](#calibre_link-222)。