09-05
25

apache用urlrewrite实现二级域名

服务器是apache带了iis和tomcat,又要加一个系统跑了一个第三方的类似iis的web服务还要加二级域名,烦,这就是集成?还要搞单点登录,哎

80端口给apache,iis给了6666,类iis给了801,tomcat给了8081,琢磨了一天才实现这个功能记一笔不要忘了。
首先泛域名解析要找域名商设置的,其他的urlrewrite就在apache里做了
一切尽在这段中
<VirtualHost *>
    ServerAdmin hibj@letgoo.com
    DocumentRoot /webs/hosts/hibj/html/
    ServerName www.XXXX.cn
    ServerAlias www.XXXX.cn
    ErrorLog c:/webs/logs/www.XXXX.cn-error_log
    CustomLog c:/webs/logs/www.XXXX.cn-access_log common
#前面的就不说了一个VirtualHost 的设置
#这个是把iis代理到虚拟目录shop1上
ProxyPass /shop1/ http://127.0.0.1:6666/
#这个是把类iis代理到虚拟目录store上
ProxyPass /store/ http://127.0.0.1:801/
#下面是rewrite的写法,三个rewritecond三个的关系默认是AND,第2和第3个rewritecond表示如果是www\.XXXX\.cn或者shop\.XXXX\.cn就不做url rewrite
Rewriteengine on
rewritecond %{HTTP_HOST} ^[^.]+\.XXXX\.cn$ [NC]
rewritecond %{HTTP_HOST} !^www\.XXXX\.cn.*$ [NC]
rewritecond %{HTTP_HOST} !^shop\.XXXX\.cn.*$ [NC]
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
#这里就把符合条件的HTTP_HOST请求转发到/store/index.asp,并且把请求的地址作为参数传递给index.asp,当然在index.asp中怎么分配转发自己写了
rewriterule ^([a-z-]+\.XXXX\.cn/.*) /store/index.asp?site=$1 [PT]
</VirtualHost>
这样用户abc创建自己的账户后就可以用 abc.XXXX.com来访问了

文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Apache
相关日志:
评论: 0 | 引用: 0 | 查看次数: 555
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭