`
javantsky
  • 浏览: 83661 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

apache域名绑定

阅读更多

需求背景:

系统中用户注册后会根据id生成其主页,如http://www.test.com/index/2

用户希望实现一级域名绑定,即,通过访问http://www.demo.com也能直接访问到其主页

 

我们系统采用的是apache + tomcat的环境,通过apache访问静态资源。

apache + tomcat的搭建配置不属于本文讨论范围。

 

解决方法,在apache的配置文件中加入vhost

 

<VirtualHost *:80>
#申请的一级域名,根据实际情况修改
ServerName www.demo.com
ServerAlias www.demo.com

DocumentRoot "/home/test/statics"
RewriteLogLevel 1
ErrorLog logs/demo_error.log
CustomLog logs/demo_cn.log common

<Directory "/home/test/statics">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

RewriteEngine on
#下行中的“2”为该用户的id号,根据实际情况修改
RewriteRule ^/$ /index/2 [R,L]

ProxyPass /images/ !
ProxyPass /swf/ !
ProxyPass /scripts/ !
ProxyPass /css/ !

ProxyPass / balancer://tomcatcluster/
ProxyPassReverse / balancer://tomcatcluster/
<Proxy balancer://tomcatcluster>
BalancerMember ajp://127.0.0.1:8009 route=jvmtest
</Proxy>
</VirtualHost>

 添加完vhost后,重启下httpd服务,就实现了一级域名绑定。

 

顺便说一个很简单的二级域名绑定方式

在www.test.com的vhost中添加如下内容:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^[0-9]+\.test.com$
RewriteRule ^/?$ /%{HTTP_HOST}
RewriteRule ^/([0-9]+)\.test\.com/?$ /index/$1 [R,L]

 这样通过访问http://2.test.com也能范围到http://www.test.com/index/2中同样内容了

 

apache域名绑定的关键是urlrewrite,需要一点正则表达的知识。

如果有需要帮助的,给我留言就ok了,我会尽力帮忙的

1
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics