首先要在dns服务器上打开域名的泛域名解析(自己做或者找域名服务商做)。
比如把 *.jb200.com和 *.jbxue.cn全部解析到了我的这台linux server上。
然后,查看apache中关于*.jb200.com的虚拟主机的设定。
在这段设定中,把*.jbxue.net和*.jb200.com 的document root都设定到了 /home/www/www.jb200.com
但是,看到<ifmodule mod_rewrite.c>...</ifmodule>配置了吗?在这里配置url rewrite规则。
不了解url rewrite重写的朋友,可以参考:
rewriteengine on #打开url rewrite功能
rewritecond %{http_host} ^[^.]+.osall.(com|net)$ #匹配条件,如果用户输入的url中主机名是类似 xxxx.jb200.com 或者 xxxx.jbxue.cn 就执行下面一句
rewriterule ^(.+) %{http_host}$1 [c] #把用户输入完整的地址(get方式的参数除外)作为参数传给下一个规则,[c]是chain串联下一个规则的意思
rewriterule ^([^.]+).osall.(com|net)(.*)$ /home/www/dev.jb200.com/sylvan$3?un=$1&%{query_string} [l] # 最关键的是这一句,使用证则表达式解析用户输入的url地址,把主机名中的用户名信息作为名为un的参数传给 /home/www/dev.jb200.com目录下的脚本,并在后面跟上用户输入的get方式的传入参数。并指明这是最后一条规则([l]规则)。注 意,在这一句中指明的重写后的地址用的是服务器上的绝对路径,这是内部跳转。
如果使用http://xxxx这样的url格式,则被称为外部跳转。使用外 部跳转的话,浏览着的浏览器中的url地址会改变成新的地址,而使用内部跳转则浏览器中的地址不发生改变,看上去更像实际的二级域名虚拟服务器。
重启apache服务器,使url重写规则生效。