最近需要做一个网站,其中有一个版块是用户申请,填写网站相关信息,然后选择模板就可以由一个基于主站的二级域名,例如主站的域名是http://www.mysite.com,如果用户user申请了一个,则他的网站的域名是http://user.mysite.com,这个如何实现,要求的是他们各自的网站的虚拟目录就是以他们的域名来命名的,而且和主站虚拟目录平行,这个如何实现,根据这几天的探索似乎是要域名的泛化解析,和url重写。但是看了很久都没实现。有相关经验的指导一下。

解决方案 »

  1.   

    只要域名支持泛化解析,将二级域名都指向拟的服务器短,服务器短同样支持泛化解析,并将二级的域名的请求指向拟的过程,在过程中使用过滤器,截取路径,解析后做真是路径的请求发送。服务器短同样支持泛化解析:一般的空间商都支持这个东东,具体就是用apache2泛化解析规则。
    域名支持泛化解析:在域名出添加一个匹配:*mysite.com。
      

  2.   

    能具体的把整个流程写下来嘛,我现在是在本地测试,将windows下的hosts文件中添加了
    IP www.mysite.com
    IP a.mysite.com
    做了一个简单的模拟的域名解析过程。
    然后再将httpd.conf文件中做了如下配置
    LoadModule rewrite_module modules/mod_rewrite.soListen IP:80
    <VirtualHost IP:80>
    ServerName mysite.com
    ServerAlias *.mysite.com
    RewriteEngine   on
    DocumentRoot "C:/Tomcat 6.0/webapps/jeecms/www.mysite.com"#下边的这几行就是不清楚,对于像我的这个正则表达式该如何书写#RewriteCond %{HTTP_HOST} ^[A-Za-z0-9\-]+\.mysite\.com$
    #RewriteRule ^/(.*)$ /%{HTTP_HOST}/$1
    #RewriteRule ^/([A-Za-z0-9\-]+)\.mysite\.com/?$ /index.jsp?userid=$1 [L,PT]
    </VirtualHost>

    tomcat下的server.xml部分内容是
    <Host name="www.yb.com"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="C:/Tomcat 6.0/webapps/jeecms/www.mysite.com" debug="0" reloadable="true"/>
    </Host>
      <Host name="cesi.yb.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="C:/Tomcat 6.0/webapps/jeecms/a.mysite.com" debug="0" reloadable="true"/>
    </Host>然后我在jeecms下边有两个文件夹,www.mysite.com 和a.mysite.com,现在我该如何进行设置让我输入以这个地址为前缀的http://a.mysite.com的就进入a.mysite.com这个文件夹,而输入http://www.mysite.com就会打开www.mysite.com文件夹中的页面。