网络推荐

推荐给好友 上一篇 | 下一篇

Apache+Resin下如何写伪静态和301跳转


声明
  • 声明: 1、任何网站转载本站点内容时需注明来自JAVA-CN.COM,否则我们有权将根据《互联网著作权行政保护办法》追究其相应法律责任; 2、JAVA中文站社区刊登此文只为传递信息,并不表示赞同或者反对.
原文出处: http://www.javatang.com/archives/2008/10/18/1942276.html
R&D.z{G(J z作者: Jet Mah from Java堂JAVA中文站社区门户3r+de,Lq)||%Nh
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!
JAVA中文站社区门户N2gT#E6A hw%X

目前网上大多数资料都是介绍如何在Apache中设置伪静态的,在Resin中很少提及,经过实践实现了这一点,现在做如下总结。JAVA中文站社区门户9}6K#Z2f3L/Wh8RXw-v

KBe[![.g2y(BF0o1. Apache下如何写伪静态和301重定向JAVA中文站社区门户$f(i5]o!@PF
直接上代码(以本站域名为例):

v3n6L6U-s$p#|3H
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3.     # 叹号表示非,L表示最终结果,不再循环;NC是不区分大小写。
  4.     RewriteCond %{http_host} !^www.javatang.com [NC]
  5.     RewriteRule ^/(.*)$ http://www.javatang.com/$1 [R=301,NC,L]
  6.     RewriteRule ^(.*)/index(.*)$ $1/index.html [R=301,NC]
  7.   </IfModule>
JAVA中文站社区门户I+JZ-tp$W

2. Resin下如何写伪静态和301重定向JAVA中文站社区门户7no-S#K R0H
Resin下的重定向也是由伪静态来写的,不过具体一些的话他同页面伪静态是分别由两个tag来完成的,页面伪静态由forward完成,301永久重定向由moved-permanently完成。JAVA中文站社区门户&C(E8@fZ

(?n e n0WGP下面是具体的代码:JAVA中文站社区门户(Q!H0p|XB9B

  1. <rewrite-dispatch>
  2.         <forward regexp="^(.*)/archives/([^/]+)/([^/]+).html$" target="$1/archives.jsp?q=$3&amp;a=$2" />
  3.         <!-- HTTP 301 moved -->
  4.         <moved-permanently regexp="^(.*)/index(.*)$" target="$1/index.html"/>
  5.     </rewrite-dispatch>

n8Q!i6Zh{l这里需要特别注意的一点就是地址中的QueryString中&连接符需要使用&来代替,否则为出现错误。

h(a@9Q5I

5E2y9N ?XM2xME因为JavaEE默认的web.xml文件不支持上述属性,所以可以在你的站点WEB-INF目录下创建一个resin-web.xml文件,这个文件会被Resin看作为站点配置文件,然后在文件中写下如下内容:JAVA中文站社区门户 d v*_6c| ^6j

  1. <web-app xmlns="http://caucho.com/ns/resin"
  2.          xmlns:resin="http://caucho.com/ns/resin/core">
  3.     <rewrite-dispatch>
  4.         <forward regexp="^(.*)/archives/([^/]+)/([^/]+).html$" target="$1/archives.jsp?q=$3&amp;a=$2" />
  5.         <!-- HTTP 301 moved -->
  6.         <moved-permanently regexp="^(.*)/index(.*)$" target="$1/index.html"/>
  7.     </rewrite-dispatch>
  8. </web-app>

U+Uw2zGU8P&k3. Apache+Resin组合的时候设置伪静态需要注意的地方

` F2P.g0\t4f;cz JAVA中文站社区门户 k vh_g2p/D~(KP

二者组合中Resin主要完成Servlet所映射的地址为文件类型,而Apache完成其余部分,因此关于页面伪静态部分需要在Resin和Apache中同时设置才有效,否则有时候会出现404错误。但对于301永久重定向来说,如果是涉及域名部分的只需要在Apache中设置即可,如果二者都设置的时候会出现域名解析错误;如果涉及到页面部分的话需要在二者中都设置。JAVA中文站社区门户e%@PHy,r q

V` y_i关于Resin如何同Apache组合请看这篇文章 Resin 3.0.x 经验总结

;z)d^0MJ.n JAVA中文站社区门户m5kw;e\*{U E&Q

关于Resin+Apache下如何设置泛域名请看这篇文章 Apache+Resin泛域名的设置JAVA中文站社区门户q*p$P |&r9AT



TAG: Apache apache Resin resin 静态 重定向
 

评分:0

我来说两句

seccode