Apache HTTP服务器 2.0版本
说明: | 用户网站目录 |
---|---|
状态: | Base |
模块名: | userdir_module |
源文件: | mod_userdir.c |
此模块允许使用类似http://example.com/~user/
的语法来访问用户网站目录。
说明: | 用户网站目录的位置 |
---|---|
语法: | UserDir Directory-filename |
默认值: | UserDir public_html |
上下文: | 服务器配置, 虚拟主机 |
状态: | Base |
模块: | mod_userdir |
UserDir
指令制定了用户宿主目录下的一个实实在在的目录,
存放了该用户提供访问的文档。Directory-filename可以是以下几种形式之一:
disabled
. 停止所有用户名到目录的转换,
但不包括明确使用enabled
启用的(见下面).disabled
并跟有一个以空格分隔的用户名列表。
此列表中的用户即使出现在enabled
的用户列表中,
也不会执行任何目录转换操作。enabled
并跟有一个以空格分隔的用户名列表。
此列表中的用户允许执行目录转换操作,即使有一个全局的disable关闭了此操作,
但是,如果同时出现在disabled
的用户列表中,则不执行此操作。如果在Userdir
指令中,
既没有enabled
也没有disabled
关键词,
则,其参数被视为文件匹配模式,用于转换为目录名。
http://www.foo.com/~bob/one/two.html
请求会被转换为:
UserDir directive used | 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 |
下列指令将发送重定向到客户端:
UserDir directive used | Translated path |
---|---|
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
指令和Security Tips。
举例:
允许某些用户使用UserDir
指令, 而禁止其他用户:
UserDir disabled
UserDir enabled user1 user2 user3
允许大多数用户使用UserDir
指令,而禁止一小部分用户:
UserDir enabled
UserDir disabled user4 user5 user6
还可以指定其他的用户网站目录:
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不能判断重定向是否成功,所以如果不放在最后,那么它只是一个替换地址。