手机
当前位置:查字典教程网 >编程开发 >JSP教程 >jsp网站永久换域名的处理过程
jsp网站永久换域名的处理过程
摘要:1、在tomcat下针对旧域名做个虚拟主机首页为index.jsp,404错误页面为unfind.jsp首页使用301转向,有利于搜索引擎优...

1、在tomcat下针对旧域名做个虚拟主机

首页为index.jsp ,404错误页面为 unfind.jsp

首页使用301转向,有利于 搜索引擎优化

<%

response.setStatus(301);

response.setHeader( "Location","http://***.com");

response.setHeader( "Connection", "close");

%>

unfind.jsp 判断旧页面应该转向的新页面地址,没有则跳到新的页面,这样以前的外链就不受影响了

<%@ page language="java" contentType="text/html; charset=utf-8" isErrorPage="true" pageEncoding="utf-8"%>

<%

response.setStatus(HttpServletResponse.SC_OK);

String key = (String) request.getAttribute("javax.servlet.forward.servlet_path");

String id= request.getParameter("id");

if (key != null ) {

int index = key.lastIndexOf("/");

if (index != -1) {

key = key.substring(index + 1);

if (key.startsWith("v")) {

response.sendRedirect("http://***.com/viewtv/"+ id);

}

if (key.startsWith("t")) {

response.sendRedirect("http://***.com/tv/"+ id);

}

}

}

response.sendRedirect("http://***.com");

%>

参考文章

转帖自http://blog.csdn.net/lifaming15/archive/2008/10/16/3084282.aspx

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的类库。如果有经验,自己写也不是很麻烦。也可以用现成的开源的免费的urlrewrite filter. http://tuckey.org/urlrewrite/下载

修改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>

过滤规则

<?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+).htm$</from>

<to>/viewthread.jsp?id=$1</to>

</rule>

</urlrewrite>

二、使用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>

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

也就是页面没找到的错误

实例:

http://www.xxx.net/f29

会被自动转发到

http://www.xxx.net/forumdisplay.jsp?fid=29

因为系统并不存在f29,所以使用了404的错误处理页面来实现这个功能

页面代码如下

查看复制到剪切板打印

<%@ page language="java" contentType="text/html; charset=GBK" isErrorPage="true" pageEncoding="GBK"%>

<%

response.setStatus(HttpServletResponse.SC_OK);

String key = (String) request.getAttribute("javax.servlet.forward.servlet_path");

if (key != null) {

int index = key.lastIndexOf("/");

if (index != -1) {

key = key.substring(index + 1);

if (key.startsWith("f") || key.startsWith("p")) {

try {

long id = Long.parseLong(key.substring(1));

String url = key.startsWith("f") ? "forumdisplay.jsp?fid=" : "viewthread.jsp?tid=";

%>

<jsp:forward page="<%=url+id%>"></jsp:forward>

<%

return;

} catch (Exception ex) {}

}

%>

<jsp:forward page="<%=response.encodeURL("search.jsp")%>"><jsp:param name="keyword" value="<%=key %>" /></jsp:forward>

<%

return;

}

}

%>

对不起,您请求的页面没有找到!

总结

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

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

第三种最灵活,一般简单的应用可以用这个。

【jsp网站永久换域名的处理过程】相关文章:

Hibernate获得成功的十大理由

jsp重定向地址栏不改变的实例

jsp如何链接mysql数据库的操作

jsp页面循环集合操作整理

jsp页面调用applet实现人民币的大小写转换

jsp+jdbc实现连接数据库的方法

jsp工作原理

在jsp页面中响应速度提高的7种方法分享

JSP简明教程:令人兴奋的脚本编程

jsp防止跨域提交数据的具体实现

精品推荐
分类导航