大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp,*.php页面。但实际上绝大部分网站都是动态的,不可能全部是静态的HTML
因此大部分网站都会采用伪静态----就是将*.jsp,*.php这种动态URL伪装成静态的HTML页面。
实现伪静态:可以通过Filter拦截所有发向*.html请求,然后按某种规则将请求forward到实际的*.jsp,而URL Rewrite开源项目便提供
了这种实现
1、下载urlrewritefilter-4.0.3.jar,下载连接:http://www.tuckey.org/urlrewrite/ 附件中也提供下载
2、在web.xml文件中配置启用URL Rewrite Filter
<!-- 配置URL Rewrite的Filter拦截的所有请求 -->
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
上面的片段指定使用URL Rewrite Filter拦截所有的用户请求
3、在应用的WEB-INF路径下增加urlrewrite.xml文件。该文件定义了伪静态映射规则,这份伪静态规则是基于正则表达式的
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
"http://www.tuckey.org/res/dtds/urlrewrite3.2.dtd">
<urlrewrite>
<rule>
<from>/userinf-(\w*).html</from>
<to type="forward">/userinf.jsp?username=$1</to>
</rule>
</urlrewrite>
上面的规则文件意思是:所有发向/userinf-(\w*).html的请求都将被forward到userinf.jsp页面,并将(\w*)正则表达式所匹配的内容作为username参数值。
userinf.jsp页面:
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
String user = request.getParameter("username");
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=user %>的个人信息</title>
</head>
<body>
<%
out.println("现在的时间是:"+new Date());
out.println("用户名:"+user);
%>
</body>
</html>
完成以上代码后,输入http://localhost:8080/urlrewrite/userinf-aniyo.html访问
注意,端口和项目名改成自己项目对应的
分享到:
相关推荐
用urlrewrite实现的asp.net 网站的伪静态
通过UrlRewrite组件实现url重写,可以优化url,对搜索引擎友好,被收录质量高等好处。
使用URL Rewrite实现网站的伪静态实例,包括urlrewritefilter-4.0.3.jar
描 述:UrlReWrite(Url重写或伪静态)完美示例源码 UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题 例如:/products.aspx?category=books 转换为/products/Books....
asp net UrlReWrite Url重写或伪静态 完美示例源码
java urlrewrite 实现伪静态化 demo源码 http://www.cnblogs.com/liujun0930/archive/2011/12/05/2276553.html
UrlReWrite(Url重写或伪静态)UrlReWrite(Url重写或伪静态)
URLRewrite.dll 包含程序集:URLRewrite.dll 与一个源码示例程序。 更好帮助大家学习。
Discuz! X2 配置URL伪静态Rewrite规则,里面详细讲解了apache服务器下 Discuz! X2 配置URL伪静态Rewrite规则和IIS下得Discuz! X2 配置URL伪静态Rewrite规则
Url Rewrite 实现jsp页面伪静态化_凌风_.doc
ISAPI_Rewrite,ISAPI_Rewrite用来实现伪静态,将动态网页通过重写URL的方法实现去掉动态网页的参数!它的行为是像Apache的mod_Rewrite ,但专为微软的Internet信息服务( IIS )。 IIS配置相当简单,配置好之后就有...
IIS中使用的伪静态组件 Url Rewrite伪静态组件
结构以上事实,然后伪静态技术产生了,规范的说就是URL重写技术,他对于ASPX格式支持最好,当然也可以重写HTML格式的文件,但这需要IIS的设置,相对比来说,ASPX格式的更方便,本站就是采用了该URL重写技术,这个...
简单的WordPress URL重写WordPress URL Rewrite!点击“下载”按钮开始使用WordPress URL重写。 WordPress URL重写与这些版本的Windows: Windows 8,7和Vista(32位和64位) Windows XP(见下面的特殊要求) ...
NULL 博文链接:https://jilongliang.iteye.com/blog/2035179
Rewrite 在iis下 url 伪静态 Rewrite 在iis下 url 伪静态
JAVA实现URL rewrite伪静态_.docx
PHPWAMP内置IIS站点管理的相关伪静态安装,采用PHPWAMP的IIS站点管理可以在IIS服务器上同时运行多个不同的PHP版本
本例把它命名为:UrlRewrite,在创建的时候,选择勾选“Add JSTL libraries to WEB-INF/lib folder ”(注:因为项目中会用到jstl 核心标签库),然后再把urlrewrite-2.6.0.jar导入到项目Bulid Path路径下,最后再加入...