URL重写,就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页
举例
/product.jsp?id=1001
/product.jsp?id=1002
/product.jsp?id=1003
重写后,可以用
/product/1001.html
/product/1002.html
/product/1003.html
一、过滤器 用 urlReweite的类库
修改web.xml增加过滤器,然后配置个过滤规则
web.xml修改部分
<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>
过滤规则 urlrewrite.xml
<?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>/poduct/(\d+).html$</from>
<to>/product.jsp?id=$1</to>
</rule>
</urlrewrite>
二、使用Apache
# 去掉这个前面的#,启用它
LoadModule rewrite_module modules/mod_rewrite.so
<VirtualHost _default_:80>
# 其它的配置数据
RewriteEngine On
# 下面三行实现动态解析
RewriteRule ^/product/(\d+).html$ /product.jsp?id=$1 [L,PT]
</VirtualHost>
三、使用404页面跳转
web.xml修改部分
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
404.jsp 内容
<%@ page language="java" contentType="text/html; charset=UTF-8" isErrorPage="true"%>
<%
response.setStatus(HttpServletResponse.SC_OK);
String key = (String) request.getAttribute("javax.servlet.forward.servlet_path");
try {
if (key != null) {
int index = key.lastIndexOf("/");
if (index != -1) {
key = key.substring(index + 1);
if (key.endsWith(".html")) {
long id = Long.parseLong(key.substring(0, index-4));
String url = "product.jsp?productid=" + id;
out.println(url);
request.getRequestDispatcher(url).forward(request, response);
}
}
}
}
catch(Exception e) {
out.println("找不到该网页");
}
%>
分享到:
相关推荐
用ASP.NET实现URL重写 用ASP.NET实现URL重写 用ASP.NET实现URL重写 用ASP.NET实现URL重写 用ASP.NET实现URL重写 用ASP.NET实现URL重写 用ASP.NET实现URL重写 用ASP.NET实现URL重写
这是本人博客上《用自定义IHttpModule实现URL重写》一文的示例代码,如果有未尽之处或者不明白之处请到本人博客上查看,网址是:http://blog.csdn.net/zhoufoxcn/archive/2009/07/14/4346356.aspx
UrlRewriter.dll实现URL重写 以及伪静态
URL重写,其实就是把带一大堆参数的url,变成一个看上去很规矩的url。本例是URL重写的Java WEB实现。
asp.net实现url重写,asp.net实现url重写简单实例
vs2005中实现url重写,并通过重写form的action等的方式;或通过vs2005中的App_Browsers作用域的方式进行回发处理
描 述:UrlReWrite(Url重写或伪静态)完美示例源码 UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm...幸而ASP.NET给我们提供了强大的可扩展性,能让我们自己定义页面的访问规则,很方便实现URL重写。
最简单的用IHttpHandler实现url重写,vs2005
9.您在其他项目中使用此方法实现URL重写时,Form.browser、FormRewriterControlAdapter.cs、IsapiRewrite4.dll 这3个文件无需修改,直接使用。 10.IsapiRewrite4.ini这个文件的内容是URL重写规则,请您在使用中根据...
一个简单的url重写 的基本实现,适合新手学习
用Intelligencia.UrlRewriter组件实现URL重写,有源代码,有详细文档说明
用C# 实现 url 重写,主要用到dll 重定向来源链接
asp.net url重写 demo 框架 3.5 利用Intelligencia.UrlRewriter.dll组件实现url重写
URL映射技术帮助我们将一个特定URL映射为另一个URL。为了帮助理解,我们假设你在站点有一个叫Homepage.aspx的页面来主页,所有的用户也都用这个页面来你的主页。但由于某些原因,你要将主页改为OriginalHome.aspx。...
UrlWriter实现url重写的一个实例,刚弄好的,发上来,也给自己挣点分
本讲将通过实例比较ASP.NET下的三种典型URL重写方案——ISAPI重写(使用开源组件IIRF),ASP.NET2.0内置的urlMappings和基于自定义HTTPModule的URL重写(使用NBear.Web中的UrlRewriteModule实现),并探讨URL重写中...
伪静态URL重写是通过微软公司封装好了的一个URL重写组件(UrlReswriter.jar)来实现的,导入JAR包,在WEB服务中加载伪静态地址拦截器,客户端以静态地址向服务器发起请求,服务器端的拦截器拦截客户端请求,查找XML...
URL 重写用UrlRewriter.dll实现伪静态页面的效果
net用url重写URLReWriter实现任意二级域名
最近开发项目的时候,遇到Struts2需要URL重写的问题,总结了下资料,和大家分享!!