`

urlredirect URL重定向(转)

阅读更多

      如何增强你网站中地址的可读性和让搜索引擎快速的收录到你的站点,这就需要你美化你的网页的地址,也就是我们常说的Url 重写技术,大家熟悉的可能有很多服务器都提供Url重写的技术,以前我们用的最多的就是Apache,Jboss这样一些服务器自带的一些Url重写,但是他们的配置比较麻烦,性能又不是太好,现在我们有专一的开源框架来完成Url重写任务,今天我要介绍的就是UrlRewriter。使用起来比较简单,配置是相当的简单明了。

我们先简单的了解一下使用Url重写能给你网站带来哪些好处。
第一:有利于搜索引擎的抓取,因为现在大部分的搜索引擎对动态页面的抓取还比较弱,它们更喜欢抓取一些静态的页面。而我们现在的页面大部分的数据都是动态的显示的。这就需要我们把动态页面变成静态的页面,有利于搜索引擎的抓取。

第二:让用户更容易理解,很少有用户去关心你网站的页面的地址,但对一般的大中型网站增强可读性还是必须的。这样会让你的网站更加完美。

第三:隐藏技术的实现,我们可以通过Url重写可以实现技术的隐藏。不至于暴露你所采用的技术,给一些想攻击你网站的爱好者提供方便。

第四:可以很方便的重用,提高网站的移植性。如果我们后台方法改动的话,可以保证前台的页面部分不用改。这样就提高了网站的移植性。

它虽然有这么多的优点,但是也有一点缺点的,因为它是通过过滤器原理来实现的,就意味着又多了一道访问,会多少影响点访问速度的,这个可以忽略不计的。
现在UrlRewriter技术有两个技术平台的,一个就是在Java方向的,另一个就是.NET方向的。今天我们讲的是Java方向的应用。
首先让我们了解它的工作原理,说白了它就是一个简单的过滤器(Filter) ,看看源码你就会很快的明白,它就是通过我们在jsp中常用的两个方法实现的forward(),sendRedirect().

下面我们就快速的为你的网站搭建Url重写技术
第一步:下载urlrewrite-2.6.0.现在最新版本是3.1的。(http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip
http://urlrewritefilter.googlecode.com/files/urlrewritefilter-3.1.0.zip把urlrewrite-2.6.0.jar拷到classpath下。
第二步:在WEB-INF目录下建一个urlrewrite.xml文件。
第三步:在web.xml中初始化。加上下面的代码:

 


1    <!-- Set URL Rewrite-->
2 <filter>
3   <filter-name>UrlRewriteFilter</filter-name>
4   <filter-class>
5     org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
6   </filter-class>
7 </filter>
8 <filter-mapping>
9   <filter-name>UrlRewriteFilter</filter-name>
10   <url-pattern>/*</url-pattern>
11 </filter-mapping>

 

最后我要简单的讲一下常用的两个配置规则.以下就是简单的urlrewrite.xml配置片段。不要习惯Java的命名法把它写成urlRewrite.xml,这样即使你加上

 


1 <init-param>
2    <param-name>confPath</param-name>
3    <param-value>/WEB-INF/urlRewrite.xml</param-value>
4 </init-param>

 

在启动的服务器的时候还是会报错的,因为源码中必须是全小写的(urlrewrite.xml)且只能放到WEB-INF下面。

 


1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
3         "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
4 <urlrewrite>
5   <rule>
6   <from>^/(\w+)/(\w+)/page_(\d+)\.html$</from>
7   <to type="forward">/$1.htm?category=$2&page=$3</to>
8 </rule>
9   <rule>
10      <from>^/rss/yahoo\.html$</from>
11        <to type="redirect">http://add.my.yahoo.com/rss?url=http://feed.feedsky.com/W3CSSiteFeed
12       </to>
13 </rule>
14 </urlrewrite>

 

所有的规则配置都写在这里。第一个常用个规则就是站内的简单重写。

 


1 <rule>
2   <from></from>
3   <to type="forward></to>
4 </rule>

<from></from>写上你自己定义的访问地址,<to type="forward></to>就是实际的访问地址。比如我们实际的访问地址是:http://yousite.com/entity.htm ?category=user&page=2.而我们想把它重写为http://yousite.com/entity/uesr/page_2.html。这样看起来比我们实际的要好看的多。我们就应该这样的写:

 


<rule>
  
<from>^/(\w+)/(\w+)/page_(\d+)\.html$</from>
  
<to type="forward">/$1.htm?category=$2&page=$3</to>
</rule>

简单的介绍一下常用的正规表示式:
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
常用的&要用 &来表示。$1,$2代表与你配置正规表达式>/(\w+)/(\w+)/相对应的参数。<to type="forward">默认的是 type="forward".
另一个常用的规则就是连接外部的网站。就要用到。<to type="redirect">


1 <rule>
2      <from>^/rss/yahoo\.html$</from>
3        <to type="redirect">http://add.my.yahoo.com/rss?url=http://feed.feedsky.com/MySiteFeed
4       </to>
5 </rule>
分享到:
评论

相关推荐

    .net URL地址重写 重定向 源码

    2. **URL重定向**:URL重定向则是在客户端或服务器端改变请求的目标URL。这在网站结构变更或页面迁移时特别有用,可以确保旧链接依然能正确指向新的位置。ASP.NET中,可以通过`HttpResponse.Redirect()`方法实现临时...

    linux内核实现url重定向

    6. `setup_redirect_url` 和 `clear_redirect_url` 函数:这两个函数分别用于设置和清除URL重定向的目标地址。`setup_redirect_url`可能接受新的URL并更新内部存储,而`clear_redirect_url`则可能将重定向URL恢复为...

    NET中URL重定向

    在.NET开发中,URL重定向是一种常见的技术,用于将用户请求的原始URL转换为不同的URL,这在优化网站结构、管理旧链接或者实现SEO友好URL等方面具有重要作用。本实例主要探讨了如何在.NET环境中实现URL重定向,特别是...

    Python-基于Python的缩址PyURLShortener是供Flask应用中对URL缩址以及重定向支持

    **Python-基于Python的缩址PyURLShortener:Flask应用中的URL短链与重定向** 在Web开发中,有时我们需要将长的URL缩短,以便更方便地分享或存储。`PyURLShortener`就是这样一款Python库,它为Flask应用提供URL缩址...

    disuz伪静态,URL301重定向文件,适用dz所有版本

    Redirect 301 /old-url.html http://new-domain.com/new-url.html ``` 4. **重启Apache服务**:完成上述修改后,保存文件并重启Apache服务器,以使更改生效。 5. **测试与调整**:在实际环境中,务必检查重定向...

    IISURLRewrite2.0 IIS URL重定向

    **IIS URL重定向与IIS URL Rewrite 2.0** IIS(Internet Information Services)是微软提供的一个强大的Web服务器,广泛应用于Windows操作系统环境中。在IIS中,URL重定向和URL重写是两种非常重要的功能,它们对于...

    request和response实现跳转和重定向的区别

    1. 请求重定向(Redirect): 请求重定向是通过`Response`对象来实现的,服务器在收到请求后,会返回一个状态码3xx(如301永久重定向,302临时重定向),并在响应头中设置`Location`字段,指示客户端应该去新的URL...

    Android获取重定向后的url

    本篇文章将详细介绍如何在Android中利用WebView获取重定向后的URL。 首先,我们需要在布局文件中添加一个WebView组件。在XML文件中,可以这样定义: ```xml android:id="@+id/webView" android:layout_width=...

    forward与redirect!转发和重定向 解析

    - Redirect(重定向)可能会因为重定向到不可信的URL而导致安全问题。 5. **性能影响**: - Forward(转发)由于只需要一次HTTP请求,因此相对高效。 - Redirect(重定向)则需要两次HTTP请求(一次请求、一次...

    forward转发与redirect重定向的区别.zip

    在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...

    ThinkPHP框架使用redirect实现页面重定向的方法实例分析

    本文实例讲述了ThinkPHP框架使用redirect实现页面重定向的方法。分享给大家供大家参考,具体如下: ThinkPHP redirect 方法 ThinkPHP redirect 方法可以实现页面的重定向(跳转)功能。redirect 方法语法如下: $...

    SpringCloud URL重定向及转发代码实例

    * Redirect是指将用户的请求从一个URL重定向到另一个URL,整个过程包含两次request-response过程。 * Forward是指将用户的请求从一个URL转发到另一个URL,整个过程只包含一次request-response过程。 四、Redirect的...

    struts2 重定向

    总结来说,Struts2中的重定向是一种重要的URL导航技术,可以通过多种方式实现,包括`ActionRedirect`对象、`Results`配置、`ActionSupport`的`redirect()`方法和注解方式。理解并熟练掌握这些方法,对于开发高质量的...

    IIS7 301重定向配置

    在IT行业中,IIS(Internet Information Services)是一个由微软公司提供的强大的Web服务器应用程序,用于管理和运行...通过理解和熟练运用这些知识,您可以轻松管理网站的URL重定向,确保用户体验和SEO效果不受影响。

    添加用于将上部字符url请求重定向到下部字符url的中间件.zip

    本文将深入探讨如何创建一个自定义中间件,实现将包含上部字符的URL请求重定向到相应的小写URL的功能。这有助于保持URL的一致性和可预测性,同时也有利于SEO优化。 首先,我们需要理解中间件的工作原理。在ASP.NET ...

    Aspnet Mvc教程 11.重定向、Redirect

    重定向、Redirect 02:11 Aspnet Mvc教程 12.URLRouting简介 02:58 Aspnet Mvc教程 14. Filter 05:11 Aspnet Mvc教程 13.Helper初体验 04:53 Aspnet Mvc教程 15.QueryString传值 06:18 Aspnet Mvc教程 16.表单...

    spring mvc重定向导致内存溢出解决方案

    - **重定向URL长度限制**:浏览器和服务器对URL长度都有一定的限制。过长的URL不仅可能导致客户端无法正确解析,也会增加服务器处理的负担。 - **服务器资源消耗**:每处理一次重定向请求,都需要分配内存来存储URL...

    UrlRewritingNet.UrlRewriter.dll 伪静态URL重写

    2. **301永久重定向**:将旧URL重定向到新URL。 ```xml &lt;rule name="Redirect Old Page" stopProcessing="true"&gt; &lt;match url="^old-page$" /&gt; &lt;action type="Redirect" url="/new-page" redirectType="Permanent...

Global site tag (gtag.js) - Google Analytics