urlrewriter的使用以及出现的问题
2008-11-04 20:11
316 查看
最近开始在用urlrewriter ,记录一下使用情况以及出现的各种问题
首先要明确的是为什么要使用url:主要考虑seo以及用户体验,怎么讲呢。如果你的页面上全是.do链接然后form也使用post的话,用户不能将网页添加到收藏夹,同时你的网页也不能被搜索引擎发现,其实这个才是最主要的。当然你经过重写的url也屏蔽你的后台业务逻辑。
其实使用是很简单的,在你的web应用中使用url重写其实经过很简单的配置就可以实现的
首先去http://tuckey.org/urlrewrite/ 下载urlrewritefilter-3.1.0.zip
我使用的是beta版 版本应该没多大问题的
其实里面只有两个文件,一个是urlrewrite-3.1.0.jar,你在使用的时候只要将这个jar文件放到你的classpath中就可以使用urlrewriterl
另外一个配置文件urlrewrite.xml如下
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"
"http://tuckey.org/res/dtds/urlrewrite3.1.dtd">
<!--
Configuration file for UrlRewriteFilter
http://tuckey.org/urlrewrite/
-->
<urlrewrite>
<rule>
<note>
The rule means that requests to /test/status/ will be redirected to /rewrite-status
the url will be rewritten.
</note>
<from>/test/status/</from>
<to type="redirect">%{context-path}/rewrite-status</to>
</rule>
<outbound-rule>
<note>
The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)
the url /rewrite-status will be rewritten to /test/status/.
The above rule and this outbound-rule means that end users should never see the
url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks
in your pages.
</note>
<from>/rewrite-status</from>
<to>/test/status/</to>
</outbound-rule>
<!--
INSTALLATION
in your web.xml add...
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
EXAMPLES
Redirect one url
<rule>
<from>/some/old/page.html</from>
<to type="redirect">/very/new/page.html</to>
</rule>
Redirect a directory
<rule>
<from>/some/olddir/(.*)</from>
<to type="redirect">/very/newdir/$1</to>
</rule>
Clean a url
<rule>
<from>/products/([0-9]+)</from>
<to>/products/index.jsp?product_id=$1</to>
</rule>
eg, /products/1234 will be passed on to /products/index.jsp?product_id=1234 without the user noticing.
Browser detection
<rule>
<condition name="user-agent">Mozilla/[1-4]</condition>
<from>/some/page.html</from>
<to>/some/page-for-old-browsers.html</to>
</rule>
eg, will pass the request for /some/page.html on to /some/page-for-old-browsers.html only for older
browsers whose user agent srtings match Mozilla/1, Mozilla/2, Mozilla/3 or Mozilla/4.
Centralised browser detection
<rule>
<condition name="user-agent">Mozilla/[1-4]</condition>
<set type="request" name="browser">moz</set>
</rule>
eg, all requests will be checked against the condition and if matched
request.setAttribute("browser", "moz") will be called.
-->
</urlrewrite>
如果说只是用用的话,按照上面的步骤加到web应用程序就可以轻松使用它强大的功能了,其实强大的还是正则表达式
在使用过程中遇到的问题,下次再写。主要是中文url的处理,已经一些正则表达式的使用,也没多少东西
首先要明确的是为什么要使用url:主要考虑seo以及用户体验,怎么讲呢。如果你的页面上全是.do链接然后form也使用post的话,用户不能将网页添加到收藏夹,同时你的网页也不能被搜索引擎发现,其实这个才是最主要的。当然你经过重写的url也屏蔽你的后台业务逻辑。
其实使用是很简单的,在你的web应用中使用url重写其实经过很简单的配置就可以实现的
首先去http://tuckey.org/urlrewrite/ 下载urlrewritefilter-3.1.0.zip
我使用的是beta版 版本应该没多大问题的
其实里面只有两个文件,一个是urlrewrite-3.1.0.jar,你在使用的时候只要将这个jar文件放到你的classpath中就可以使用urlrewriterl
另外一个配置文件urlrewrite.xml如下
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"
"http://tuckey.org/res/dtds/urlrewrite3.1.dtd">
<!--
Configuration file for UrlRewriteFilter
http://tuckey.org/urlrewrite/
-->
<urlrewrite>
<rule>
<note>
The rule means that requests to /test/status/ will be redirected to /rewrite-status
the url will be rewritten.
</note>
<from>/test/status/</from>
<to type="redirect">%{context-path}/rewrite-status</to>
</rule>
<outbound-rule>
<note>
The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)
the url /rewrite-status will be rewritten to /test/status/.
The above rule and this outbound-rule means that end users should never see the
url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks
in your pages.
</note>
<from>/rewrite-status</from>
<to>/test/status/</to>
</outbound-rule>
<!--
INSTALLATION
in your web.xml add...
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
EXAMPLES
Redirect one url
<rule>
<from>/some/old/page.html</from>
<to type="redirect">/very/new/page.html</to>
</rule>
Redirect a directory
<rule>
<from>/some/olddir/(.*)</from>
<to type="redirect">/very/newdir/$1</to>
</rule>
Clean a url
<rule>
<from>/products/([0-9]+)</from>
<to>/products/index.jsp?product_id=$1</to>
</rule>
eg, /products/1234 will be passed on to /products/index.jsp?product_id=1234 without the user noticing.
Browser detection
<rule>
<condition name="user-agent">Mozilla/[1-4]</condition>
<from>/some/page.html</from>
<to>/some/page-for-old-browsers.html</to>
</rule>
eg, will pass the request for /some/page.html on to /some/page-for-old-browsers.html only for older
browsers whose user agent srtings match Mozilla/1, Mozilla/2, Mozilla/3 or Mozilla/4.
Centralised browser detection
<rule>
<condition name="user-agent">Mozilla/[1-4]</condition>
<set type="request" name="browser">moz</set>
</rule>
eg, all requests will be checked against the condition and if matched
request.setAttribute("browser", "moz") will be called.
-->
</urlrewrite>
如果说只是用用的话,按照上面的步骤加到web应用程序就可以轻松使用它强大的功能了,其实强大的还是正则表达式
在使用过程中遇到的问题,下次再写。主要是中文url的处理,已经一些正则表达式的使用,也没多少东西
相关文章推荐
- Failed to fetch URl https://dl-ssl.google.com/android/repository/addo Android SDK更新以及ADT更新出现问题的解决办法
- 使用XIB的UITableViewCell自适应,以及出现的问题进行解决
- BugFree的安装与使用以及使用过程中可能出现的问题总结
- python2.6使用mysql包出现的一些问题以及解决办法
- VC 中使用双缓冲以及出现的问题总结
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- IIS7.0 下使用Intelligencia.UrlRewriter时Session为空问题
- IKAnalyzer2012FF_u1.jar 以及PinYin4J 使用出现的问题
- 对于数据库操作可能会遇到的问题(空值问题以及出现的参数不能被重复使用问题)
- Multisim使用中出现的问题以及解决
- 页面内嵌样式表中使用url(), 出现页面多次载入问题解决
- JSP内置对象(包括request和response)以及解决url传中文参数出现乱码问题
- urlrewriter的使用中的url中文问题
- volley+listView结合使用时出现的问题以及解决方案
- Yii的CDbCriteria查询(以及使用$criteria->join出现问题的解决方法)
- 使用gyp构建项目,使用ninja更快的编译,以及使用出现和解决的问题记录
- 有关tomcat的使用配置以及使用中容易出现的问题
- 使用正则表达式获取url中的中文参数值出现乱码问题
- 使用maven的mybatis-generator生成实例和mapping过程以及可能出现问题解决