apache模块 mod_userdir
说明 | 允许用户从自己的主目录中提供页面(使用"/~username") |
---|---|
状态 | 基本(B) |
模块名 | userdir_module |
源文件 | mod_userdir.c |
概述
此模块允许使用类似Http://example.com/~user/
的语法来访问用户网站目录。
UserDir 指令
说明 | 用户网站目录的位置 |
---|---|
语法 | UserDir directory-filename |
作用域 | server config, virtual host |
状态 | 基本(B) |
模块 | mod_userdir |
UserDir
指令指定了用户目录下的一个实实在在的目录,存放了该用户提供访问的文档。Directory-filename可以是以下几种形式之一:
- 一个目录名或如下所示的匹配模式:
- 关键词
disabled
停止所有用户名到目录的转换,但不包括明确使用enabled
启用的(见下面)目录。 - 关键词
disabled
并跟随一个以空格分隔的用户名列表(其中的用户即使出现在enabled
的用户列表中,也不会进行目录转换)。 - 关键词
enabled
并跟随一个以空格分隔的用户名列表。此列表中的用户允许进行目录转换,即使有一个全局的disabled
关闭了此操作,但是,如果同时出现在disabled
的用户列表中,则不执行转换操作。
如果在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/users | http://www.foo.com/users/bob/one/two.html |
UserDir http://www.foo.com/*/usr | http://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不能判断重定向是否成功,所以如果不放在最后,那么它只是一个替换地址。
2.1.4及以后的版本中,默认不开启用户网站目录。在未设置UserDir
指令的情况下将使用"UserDir public_html
"默认值。
参见
- 用户网站目录