把httpd.conf中LoadModule vhost_alias_module modules/mod_vhost_alias.so一行开头的#去掉,
在httpd.conf中最后加入如下部分
NameVirtualHost 127.0.0.1
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot d:/www
ServerName localhost
ErrorLog logs/localhost-error_log
CustomLog logs/localhost-access_log common
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot d:/www/www
ServerName
ErrorLog logs/-error_log
CustomLog logs/-access_log common
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot d:/www/blog
ServerName yuan.test.com
ErrorLog logs/-error_log
CustomLog logs/-access_log common
ServerAdmin webmaster@dummy-host.example.com
#有了VirtualDocumentRoot,DocumentRoot不起作用
#DocumentRoot d:/www/blog/all
ServerName all.blog.test.com
ServerAlias *.blog.test.com
#下面两行是mod_vhost_alias起作用的关键
UseCanonicalName Off
VirtualDocumentRoot d:/www/blog/%-4.1%-4.2/%-4.3%-4.4/%-4
ErrorLog logs/-error_log
CustomLog logs/-access_log common
其中的%-4是代表倒数第4段,也就是name.blog.test.com中的name,为什么不用%1呢?
因为也许用户会输入5.name.blog.test.com这样更长的域名,而实际上第一段是无用的.
%-4.1中的.1代表第一个字母,那么name.blog.test.com就对应
d:/www/blog/na/me/name
这个目录,但是all会如何处理呢?会是
d:/www/blog/al/l/all
吗?不会,查看apache的错误日志,会发现是%-4.4因为没有第4个字母,所以是_,那就建
d:/www/blog/al/l_/all
目录,这样就对了
阅读(2039) | 评论(0) | 转发(0) |