<-
Apache > HTTP服务器 > 文档 > V2.0 > 模块

Apache模块 mod_userdir

说明允许用户从自己的主目录中提供页面(使用"/~username")
状态Base
模块名userdir_module
源文件mod_userdir.c

概述

此模块允许使用类似http://example.com/~user/的语法来访问用户网站目录。

top

UserDir 指令

说明用户网站目录的位置
语法UserDir directory-filename
默认值UserDir public_html
作用域server config, virtual host
状态Base
模块mod_userdir

UserDir指令指定了用户目录下的一个实实在在的目录,存放了该用户提供访问的文档。Directory-filename可以是以下几种形式之一:

如果在Userdir指令中,既没有enabled也没有disabled关键词,则其参数将被视为文件匹配模式,用于转换成目录名。对http://www.foo.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.foo.com/usershttp://www.foo.com/users/bob/one/two.html
UserDir http://www.foo.com/*/usrhttp://www.foo.com/bob/usr/one/two.html
UserDir http://www.foo.com/~*/http://www.foo.com/~bob/one/two.html
注意:使用此指令时要很小心,例如"UserDir ./"可能会把"/~root"映射到"/"而这可能不是我们想要的。强烈建议在配置文件中包含一个"UserDir disabled root"声明。更多信息请参见Directory指令和安全提示

举例:

允许某些用户使用UserDir指令,而禁止其他用户:

UserDir disabled
UserDir enabled user1 user2 user3

允许大多数用户使用UserDir指令,而禁止一小部分用户:

UserDir enabled
UserDir disabled user4 user5 user6

还可以指定任选其一的(alternative)用户网站目录:

Userdir public_html /usr/web http://www.foo.com/

对 http://www.foo.com/~bob/one/two.html 的请求,会首先尝试获取 ~bob/public_html/one/two.html ,其次是 /usr/web/bob/one/two.html,最后产生一个重定向到http://www.foo.com/bob/one/two.html

如果要增加重定向,则必须放在列表的最后。因为Apache不能判断重定向是否成功,所以如果不放在最后,那么它只是一个替换地址。

参见