Apache HTTP Server 版本 2.4

| 描述 | 用户特定目录 |
|---|---|
| 状态 | 基础 |
| 模块标识符 | userdir_module |
| 源文件 | mod_userdir.c |
此模块允许使用 http://example.com/~user/ 语法访问用户特定的目录。
| 描述 | 用户特定目录的位置 |
|---|---|
| 语法 | UserDir directory-filename [directory-filename] ... |
| 上下文 | 服务器配置,虚拟主机 |
| 状态 | 基础 |
| 模块 | mod_userdir |
指令设置用户主目录中的实际目录,当接收到对用户文档的请求时使用。Directory-filename 是以下之一UserDir
disabled。这将关闭所有用户名到目录的转换,除了使用 enabled 关键字显式命名的转换(见下文)。disabled 后跟一个空格分隔的用户列表。出现在此类列表中的用户名永远不会执行目录转换,即使它们出现在 enabled 子句中。enabled 后跟一个空格分隔的用户列表。即使全局禁用生效,这些用户名也将执行目录转换,但如果它们也出现在 disabled 子句中,则不会执行。如果 指令中既没有出现 Userdirenabled 关键字,也没有出现 disabled 关键字,则参数将被视为文件名模式,并用于将名称转换为目录规范。对 http://www.example.com/~bob/one/two.html 的请求将被转换为
| 使用的 UserDir 指令 | 转换后的路径 |
|---|---|
| UserDir public_html | ~bob/public_html/one/two.html |
| UserDir /usr/web | /usr/web/bob/one/two.html |
| UserDir /home/*/www | /home/bob/www/one/two.html |
以下指令将向客户端发送重定向
| 使用的 UserDir 指令 | 转换后的路径 |
|---|---|
| UserDir http://www.example.com/users | http://www.example.com/users/bob/one/two.html |
| UserDir http://www.example.com/*/usr | http://www.example.com/bob/usr/one/two.html |
| UserDir http://www.example.com/~*/ | http://www.example.com/~bob/one/two.html |
"UserDir ./" 将映射 "/~root" 到 "/" - 这可能是不希望的。强烈建议您的配置包含一个 "UserDir disabled root" 声明。另请参阅 Directory 指令和 安全提示 页面以了解更多信息。
其他示例
要允许少数用户拥有 UserDir 目录,但其他用户不允许,请使用以下方法
UserDir disabled UserDir enabled user1 user2 user3
要允许大多数用户拥有 UserDir 目录,但拒绝少数用户,请使用以下方法
UserDir disabled user4 user5 user6
还可以指定备用用户目录。如果您使用类似的命令
UserDir "public_html" "/usr/web" "http://www.example.com/"
对于对 http://www.example.com/~bob/one/two.html 的请求,将首先尝试在 ~bob/public_html/one/two.html 中查找页面,然后在 /usr/web/bob/one/two.html 中查找页面,最后将发送重定向到 http://www.example.com/bob/one/two.html。
如果您添加重定向,它必须是列表中的最后一个备用项。Apache httpd 无法确定重定向是否成功,因此,如果您在列表中更早地放置重定向,那么它将始终是使用的备用项。
在 2.1.4 及更高版本中,用户目录替换默认情况下处于非活动状态。在早期版本中,如果不存在 指令,则假定 UserDirUserDir public_html。
特定启用和禁用用户的列表将被替换,而不是从全局范围合并到虚拟主机范围