Apache 模块 mod_userdir

Description: User-specific directories
Status: Base
Module Identifier: userdir_module
Source File: mod_userdir.c

Summary

Warning

通过使用此模块,您允许多个用户托管同一来源内的内容。相同的来源策略是 Javascript 和网络安全的关键原则。通过托管具有相同来源的网页,这些页面可以相互读取和控制,并且一个页面中的安全问题可能会影响另一个页面。结合涉及动态内容和身份验证的网页以及用户不一定彼此信任时,这特别危险。

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

UserDir Directive

Description: 用户特定目录的位置
Syntax: UserDir directory-filename [directory-filename] ...
Context: 服务器配置,虚拟主机
Status: Base
Module: mod_userdir

UserDir伪指令将真实目录设置在用户的主目录中,以便在收到针对用户的文档请求时使用。 * Directory-filename *是以下之一:

如果enableddisabled关键字都没有出现在Userdir指令中,则将该参数视为文件名模式,并用于将名称转换为目录规范。对http://www.example.com/~bob/one/two.html的请求将转换为:

使用了 UserDir 指令 Translated path
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

以下指令将重定向发送到 Client 端:

使用了 UserDir 指令 Translated path
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

Be careful when using this directive; for instance, "UserDir ./" would map "/~root" to "/" - which is probably undesirable. It is strongly recommended that your configuration include a "UserDir disabled root" declaration. See also the Directory directive and the Security Tips page for more information.

Additional examples:

要允许一些用户拥有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

Merging details

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

See also

首页