用户自定义个性域名范解析

本文介绍了如何实现用户自定义个性域名的泛解析,包括DNS服务器中添加通配符二级域名,以及Apache和Tomcat的配置方法。通过Apache的RewriteEngine和ServerAlias设置,以及Tomcat的Host和Context配置,实现将任意二级域名映射到特定的服务器路径,从而提供用户友好的推广链接。

记录下项目用的,用户自定义个性域名范解析
2009-12-08 10:08

RewriteEngine on
RewriteCond %{HTTP_HOST} ^[a-z0-9A-Z/-]+/.it1s.cn$
RewriteRule ^/?$ /%{HTTP_HOST}
RewriteRule ^/([a-z0-9A-Z/-]+)/.it1s/.cn/?$    /blog.php?u=$1

RewriteEngine on
RewriteCond %{HTTP_HOST} ^[a-z0-9A-Z/-]+/.wjsn.com$
RewriteRule ^/?$ /%{HTTP_HOST}
RewriteRule ^/([a-z0-9A-Z/-]+)/.wjsn/.com/?$    /blog.php?u=$1






泛域名解析
公司代理联盟系统需要做个范域名解析:原理就是用户根据登陆的用户名推广产品,之前是长长的一段:www.abc.com/invite.htm?uid=1234 ,这样的地址给用户推广起来很不方便,也很容易给最终用户长生恐惧感,怕是病毒!!所以得做个泛域名解析,比如用户登陆名是:test  用户ID是1234,那么他的推广网站就变成:test.abc.com 代替原先的www.abc.com/invite.htm?uid=1234!!
  需要做的只有两部:
  1.在DNS服务器哪里加个二级域名,前面加个  * 号就可以了!
 
  2.然后在代理联盟系统的服务器上配置一下apache
Apache代码

   1.     NameVirtualHost *:80 
   2. <VirtualHost *:80 > 
   3.       ServerName abc.com 
   4.         ServerAlias *.abc.com 
   5.       <Directory "/home/webadmin/"> 
   6.          Options FollowSymLinks Includes 
   7.          AllowOverride None 
   8.          Order allow,deny 
   9.          Allow from all 
  10.          RewriteEngine On 
  11.   rewritecond %{HTTP_HOST} [^.]+/.abc/.com$ 
  12.         rewriterule ^(.+) %{HTTP_HOST}$1 [C] 
  13.         rewriterule ^([^.]+)/.abc/.com  http://sale.abc.com/html/reg/domain/name/$1$2 [R=301,L]//这个地址就是指向:www.abc.com/invite.htm?uid=1234上达到一样的效果! 
  14.  </Directory> 
  15. </VirtualHost> 
  16. <Directory /> 
  17.     Options FollowSymLinks 
  18.     AllowOverride None 
  19.     Order deny,allow 
  20.     Deny from all 
  21. </Directory> 


    RewriteEngine On
    RewriteRule /r_before.php$ http://www.wjsn.com/sharea/r_after.php [R]





===================================================
Apache+Tomcat 泛域名配置
关键字: apache tomcat 泛域名配置
 

Apache与Tomcat的结合在此就不赘述,详情可参考我写的博客

直入正题:

原理:tomcat不支持泛域名,但Apache支持,所以在此主要借助于Apache的泛域名支持,但tomcat与Apache结合这块,就和原来的Apache和Tomcat的结合不同了,Tomcat主要借助于在server.xml中有个<Engine defaultHost="localhost" name="Catalina"> 当非法子域名指向到本站时候都提交到了webapps/ROOT去, 所以我就想如果那样的话我只要设置泛域名解析到默认的defaultHost就可以了.

Apache设置:
Xml代码

   1. <VirtualHost *:80> 
   2. ServerName union.abc.com 
   3. ServerAlias *.test.org 
   4. DocumentRoot "D:/mywork/Test/ROOT" 
   5. <Directory "D:/mywork/Test/ROOT"> 
   6.     Options Indexes MultiViews 
   7.     AllowOverride None 
   8.     Order allow,deny 
   9.     Allow from all 
  10. </Directory> 
  11. DirectoryIndex index.htm 
  12. </VirtualHost> 

<VirtualHost *:80>
ServerName union.abc.com
ServerAlias *.test.org
DocumentRoot "D:/mywork/Test/ROOT"
<Directory "D:/mywork/Test/ROOT">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
DirectoryIndex index.htm
</VirtualHost>

 

 

这里的重点在于
Xml代码

   1. ServerAlias *.test.org 

ServerAlias *.test.org

 

泛域名的实现就是靠它了

Tomcat的设置:
Xml代码

   1. <Host name="localhost"  appBase="webapps" 
   2.             unpackWARs="true" autoDeploy="true" 
   3.             xmlValidation="false" xmlNamespaceAware="false"> 
   4. <Context path="" docBase="D:/mywork/Test/ROOT" debug="0" reloadable="true"/>    
   5.  
   6. </Host> 

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/mywork/Test/ROOT" debug="0" reloadable="true"/>  

</Host>

 

 

当然,在做这些之前,还需要进行一个操作:

修改域名所在的dns服务器,在域名的配置中增加一条*.开头的记录,就可以实现泛解析了

 

参考链接:

http://stephen830.javaeye.com/blog/277522

http://blog.ntsky.com/tomcat-domain.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值