快速业务通道

URL重写的几种实现方式的总结 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

URL重写的几种实现方式的总结

时间:2011-02-01 csdn博客 赵学庆

URL重写,其实就是把带一大堆参数的url,变成一个看上去很规矩的url,主要目的是为了搜索引擎。

举例

/viewthread.jsp?id=1234 /viewthread.jsp?id=1235 /viewthread.jsp?id=1236

重写后,可以用

/viewthread/1234.htm /viewthread/1235.htm /viewthread/1236.htm

我目前使用Tomcat+Apache,尝试过三种重写的方法

一、Tomcat的过滤器

最典型的就是用 urlReweite的类库。大家爱如果有经验,自己写也不是很麻烦。

修改web.xml增加过滤器,然后配置个过滤的规则就可以了

web.xml修改部分

<!-- Set URL Rewrite--> <filter>  <filter-name>UrlRewriteFilter</filter-name>  <filter-class>   org.tuckey.web.filters.urlrewrite.UrlRewriteFilter  </filter-class> </filter> <filter-mapping>  <filter-name>UrlRewriteFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>

过滤规则

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"     "http://tuckey.org/res/dtds/urlrewrite2.6.dtd"> <urlrewrite>  <rule>  <from>/viewthread/(\d+).htmcontentlt;/from>  <to>/viewthread.jsp?id=$1</to> </rule> </urlrewrite>

更多详情,请参考 http://www.java2000.net/p7782

二、使用Apache的mod

# 去掉这个前面的#,启用它 LoadModule rewrite_module modules/mod_rewrite.so

<VirtualHost _default_:80> # 其它的配置数据

RewriteEngine On # 下面三行实现动态解析 RewriteRule ^/viewthread/(\d+).htm$ /viewthread.jsp?id=$1 [L,PT]

</VirtualHost>

详细参考这里: http://www.java2000.net/p5422

三、使用系统的404错误进行

也就是页面没找到的错误

这个我就不写了,有兴趣的自己参考吧 http://www.java2000.net/p903

总结

第一种修改麻烦,但对于平稳运行的系统,是个不错的选择

第二种需要配置Apache,但 Apache的重启速度很快,适合于有可能经常变得情况,而且Apache Mod的效率还是不错的

第三种,最灵活,我一般简单的应用都是用这个实现的。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号