最近需要做个PHP博客,需要二级域名的方式显示个人BLOG地址的。比如我注册了个user账号,那么我的博客网址就是http://user.baidu.com/
请问这种技术事怎么实现的? 我暂时一头蒙~   希望大家给小弟解答!(我接触PHP时间不长,希望各位说的详细一下) 谢谢~

解决方案 »

  1.   

    需要给域名增加一个泛解析,也就是把xxxx.baidu.com就指向一个IP,然后程序判断主机头来确定访问的是那个BLOG空间。如果不懂可以google一下"泛解析"
      

  2.   

    泛解析
    1:方法一,较难,使用rewrite,映射
    2:方法二:使用程序获取HTTP_HOST 剖析www.test.com 得到www,然后根据这个www做指定的事,前提是你程序架构要好,改起来才容易.
      

  3.   

    感谢各位的回答!明白了!还有就是要是做成www.baidu.com/username/  其中username是个人博客账号,方法是给每个人都建立一个属于自己账号的文件吗?还是别的呢? 
      

  4.   

    这就要看你都提供了什么功能了
    一般的如果附件和图片多的话,应该是一个用户一个目录
    否则username只作为参数传递
      

  5.   

    泛解析。
    代码就差不多是: $domainhold = array_merge(explode(' ',strtolower($CONFIG['domainhold'])),array('www','admin'));
    $CONFIG['ckdomain']=strtolower($CONFIG['ckdomain']);
    $HTTP_HOST=str_replace(":".$_SERVER['SERVER_PORT'],"",$_SERVER['HTTP_HOST']);
    !$CONFIG['ckdomain'] && $CONFIG['ckdomain'] = strtolower(substr($HTTP_HOST,strpos($HTTP_HOST,'.')));
    $site = str_replace($CONFIG['ckdomain'],"",strtolower($HTTP_HOST));
    !$site && $site = strtolower(substr($HTTP_HOST,0,strpos($HTTP_HOST,'.')));
    if($site=="admin"){
    ObHeader("{$CONFIG[ServerName]}/admin.php");
    }else{
    if(!in_array($site,$domainhold)){
    $childsite_inc=R_P."data/inc/childsite.php";
    if(file_exists($childsite_inc))require_once($childsite_inc);
    if($ChildSite[$site]){
    require_once(R_P."site.php");exit;
    }else{
    ObHeader("{$CONFIG[ServerName]}");
    }
    }
    }
      

  6.   

    username.baidu.com/需要泛解析。www.baidu.com/username/也需要泛解析吗?
      

  7.   

    楼上差不多都提到需要用到的技术,我建议参考优秀开源系统的实现,比如Wordpress.
    Wordpress3.0已经集成了原来的WordPress Mu
      

  8.   

    www.baidu.com/username/不需要泛解析,需要制定rewrite规则
      

  9.   

    所谓“泛域名解析”是指:利用通配符 * (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。
      例如您的域名是abc.cn:
      做一个*.abc.cn的次级域名A记录指向222.222.222.222,那么生效后当访问者无论是输入“123.abc.cn”还是“123.123.abc.cn”甚至可以是“!@#.$%$.6543.ww.a.abc.cn”这样的 任意字符 均可以指向到222.222.222.222这个IP地址。