昨天晚上突然收到客户需求说要把律师的个人网站做成username.domainName.com 网上查了下解决方法蛮多的 但是很多都是与linux系统下的tomcat有关的, 一般都推荐使用tomcat的UrlRewrite,看了一会儿感觉要配置的东西太多了于是就自己按自己思路想了个实现的方法。
首先域名要开通泛解析,也就是说在域名解析那里有*.domainName.com的记录 在浏览器里随便输a.domainName.com 和b.domainName.com 都可进入页面。
本地测试使用方法是修改hosts文件,添加几条记录 我使用的是www.z.cn 和a.z.cn b.z.cn c.z.cn hosts里添加如下几条记录
127.0.0.1 *.z.cn #貌似这里不能使用泛解析
127.0.0.1 www.z.cn
127.0.0.1 a.z.cn
127.0.0.1 b.z.cn
127.0.0.1 c.z.cn
在页面里显示某用户的链接实现方法
<c:set var="url_a" value="http://"></c:set>
<!--当然这个域名也可以从配置文件里读取,也可以写死,为了演示方便暂时写死-->
<c:set var="url_b" value=".z.cn"></c:set>
<!--构建连接地址,在页面使用时可以使用这种方法动态组建链接地址-->
<c:out value="${url_a}${obj.lawyerId}${url_b}"></c:out>
后台处理时可从rquest中读取相关信息并作相关处理
String Host=request.getHeader("Host");
String domainName="z.cn";//当然 此处也可从配置文件读取
if(Host.contains(domainName)){
//通过字符串截取获取用户名 然后再根据用户名进行相关业务逻辑的处理
log.info("\n域名中包含用户名::");
}else{
log.info("\n域名中不包含用户名:");
}