基于Resin+Aapache的URLRewrite

[ 2006-04-19 19:02:59 | Author: zhenhua ]
Font Size: Large | Medium | Small
基于Resin+Aapache 使JSP实现URL静态化,环境:apache版本1.3.* resin2.1.14
在http webserver和作为serlvet容器的应用服务器的配合下实现有些问题。 这样就是静态的交给apache,动态的交给应用服务器。

目前尚未测试成功,希望有高人指点。
(IIS+resin的JSP静态很容易实现,暂不讨论)

思路:
1.Apache端进行urlrewrite

2.使用Resin自带的rewrite功能

3.使用第三方组件Url Rewrite Filter

4.apache端和resin端同时开启rewrite

5.resin用单独端口,用apache的ProxyPass 代理服务器功能隐藏转到resin的端口,那样就不叫结合了

测试结果:

第一种方案行不通,apache是web服务器,首先接受一切URL信息,当URL后缀是jsp或java类后缀时会交给Resin处理,若用RewriteRule /test.html /test.jsp 则访问test.html会返回test.jsp的源代码,而没有经过resin引擎,测试用RewriteRule /test2.jsp /test.jsp 则访问test2.jsp时则直接提示404不存在,是Resin的提示信息,没有经过apache的RewriteRule,可见RewriteRule对.jsp后缀的不起作用,直接经由Resin引擎解析。

第二种方法,如果单用Resin做web服务器时可以实现,但结合apache访问时html会直接由apache截取而到不了resin,矛盾
方法:
设置web-inf所在目录下面的web.xml:

并且增加以下语句
<filterfilter-name='rewrite'
 filter-class='com.caucho.filters.RewriteFilter'>
 <init>
 <rewritepattern="/(\d+)\.html"target="/\news.jsp\?id=$1"/> //example
 </init>
</filter>

<filter-mappingurl-pattern='/*'filter-name='rewrite'/>

另好象3.0以上才有'com.caucho.filters.RewriteFilter'。关于resin的urlrewrite 资料很少,caucho的介绍也很简略,全靠自己摸索。

第三种方式尚未测试成功,好象与apache结合也获取不到html的映射,仍在测试中..

第四种方法未测试
Comments Feed Comments Feed: http://www.zhenhua.org/feed.asp?q=comment&id=296
UTF-8 Encoding Trackback URL: http://www.zhenhua.org/trackback.asp?id=296

View Mode: Show All | Comments: 1 | Trackbacks: 0 | Toggle Order | Views: 8641
1
Quote jeecen
[ 2009-10-28 21:44:50 ]
第三种使用第三方组件Url Rewrite Filter的方法我已经测试过了,结果和第二种是一样的,只用resin就会成功;如果加上apache就会被拦截掉,显示404 error。
很想试一试第四种方法,但一直没有时间。
1

If you feel this site you find this information helpful, please click on the donation, which is voluntary,Thank you.
Post Comment
Smilies
[arrow] [biggrin] [confused] [cool]
[cry] [eek] [evil] [exclaim]
[frown] [idea] [lol] [mad]
[mrgreen] [neutral] [question] [razz]
[redface] [rolleyes] [sad] [smile]
[surprised] [twisted] [wink]
Enable UBB Codes
Auto Convert URL
Show Smilies
Hidden Comment
Username:   Password:   Register Now?
Security Code * Please Enter the Security Code