用户私人网站目录(Web)
在具有多个用户的系统上,可以使用UserDir
指令允许每个用户在其主目录中拥有一个网站。URL的访问者http://example.com/~username/
将从指令“username
”的子目录中获得用户“”的主目录中的内容UserDir
。
请注意,默认情况下,不启用对这些目录的访问。您可以在使用时UserDir
通过取消注释以下行来启用访问:
#include conf / extra / httpd-userdir.conf
在默认配置文件中conf/httpd.conf
,并httpd-userdir.conf
根据需要进行修改,或者<Directory>
在主配置文件中的块中包含适当的指令。
每用户Web目录
相关模块 | 相关指令 |
---|---|
|
|
使用UserDir设置文件路径
该UserDir
指令指定了其中每个用户的内容被加载的目录进行。该指令可以采用几种不同的形式。
如果给出的路径不是以斜杠开头,则假定该路径是相对于指定用户的主目录的目录路径。给定此配置:
UserDir public_html
URL http://example.com/~rbowen/file.html
将被转换为文件路径/home/rbowen/public_html/file.html
如果给定的路径以斜杠开头,则将使用该路径加上指定的用户名来构建目录路径。给定此配置:
UserDir /var/html
URL http://example.com/~rbowen/file.html
将被转换为文件路径/var/html/rbowen/file.html
如果提供的路径包含星号(*),则将使用星号替换为用户名的路径。给定此配置:
UserDir /var/www/*/docs
URL http://example.com/~rbowen/file.html
将被转换为文件路径/var/www/rbowen/docs/file.html
也可以设置多个目录或目录路径。
UserDir public_html /var/html
对于URL http://example.com/~rbowen/file.html
,Apache将搜索~rbowen
。如果没有找到它,Apache会寻找rbowen
在/var/html
。如果找到,则上述URL将被转换为文件路径/var/html/rbowen/file.html
重定向到外部URL
该UserDir
指令可用于将用户目录请求重定向到外部URL。
UserDir http://example.org/users/*/
上面的示例会将的请求重定向http://example.com/~bob/abc.html
到http://example.org/users/bob/abc.html
。
限制允许哪些用户使用此功能
使用UserDir文档中显示的语法,您可以限制允许哪些用户使用此功能:
UserDir disabled root jro fish
上面的配置将为所有用户启用该功能,但disabled
语句中列出的用户除外。同样,您可以通过使用如下配置来为除少数用户以外的所有用户禁用该功能:
UserDir disabled UserDir enabled rbowen krietz
有关UserDir
其他示例,请参见文档。
为每个用户启用一个cgi目录
为了给每个用户自己的cgi-bin目录,您可以使用<Directory>
指令来使用户的主目录的特定子目录启用cgi。
<Directory "/home/*/public_html/cgi-bin/"> Options ExecCGI SetHandler cgi-script </Directory>
然后,假设将UserDir
其设置为public_html
,则example.cgi
可以从该目录加载一个cgi程序,如下所示:
http://example.com/~rbowen/cgi-bin/example.cgi
允许用户更改配置
如果要允许用户在其Web空间中修改服务器配置,则需要使用.htaccess
文件进行这些更改。确保AllowOverride
为您要允许用户修改的指令设置了足够的值。有关此工作原理的更多详细信息,请参见.htaccess教程。