<-
Apache > HTTP 服务器 > 文档 > 版本 2.4 > 模块

Apache 模块 mod_userdir

可用语言:  en  |  fr  |  ja  |  ko  |  tr 

描述用户特定目录
状态基础
模块标识符userdir_module
源文件mod_userdir.c

摘要

通过使用此模块,您允许多个用户在同一来源中托管内容。同源策略是 Javascript 和 Web 安全的关键原则。通过在同一来源中托管网页,这些网页可以相互读取和控制,并且一个网页中的安全问题可能会影响另一个网页。这在涉及动态内容和身份验证的网页以及用户之间不一定相互信任的情况下尤其危险。

此模块允许使用 http://example.com/~user/ 语法访问用户特定的目录。

Support Apache!

指令

错误修复清单

另请参阅

top

UserDir 指令

描述用户特定目录的位置
语法UserDir directory-filename [directory-filename] ...
上下文服务器配置,虚拟主机
状态基础
模块mod_userdir

UserDir 指令设置用户主目录中的实际目录,当接收到对用户文档的请求时使用。Directory-filename 是以下之一

如果 Userdir 指令中既没有出现 enabled 关键字,也没有出现 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 及更高版本中,用户目录替换默认情况下处于非活动状态。在早期版本中,如果不存在 UserDir 指令,则假定 UserDir public_html

合并详细信息

特定启用和禁用用户的列表将被替换,而不是从全局范围合并到虚拟主机范围

另请参阅

可用语言:  en  |  fr  |  ja  |  ko  |  tr 

top

评论

注意
这不是问答部分。此处发布的评论应指向有关改进文档或服务器的建议,如果这些评论已实施或被认为无效/与主题无关,则可能被我们的版主删除。有关如何管理 Apache HTTP Server 的问题应发送到我们的 IRC 频道 #httpd(在 Libera.chat 上)或发送到我们的 邮件列表