加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

jsp网站如何改域名

发布时间:2023-06-26 14:36:20 所属栏目:教程 来源:
导读:当我们想把网站域名换掉的时候应该怎么办呢?一般旧域名都会含有很多外链,用户可能会使用旧域名等问题就需要将原来域名的链接都转到新域名下,那么我们应该这么做呢?现在我们就去看看jsp网站如何换域名的。

1、
当我们想把网站域名换掉的时候应该怎么办呢?一般旧域名都会含有很多外链,用户可能会使用旧域名等问题就需要将原来域名的链接都转到新域名下,那么我们应该这么做呢?现在我们就去看看jsp网站如何换域名的。
 
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修改部分
 
<!-- Set URL Rewrite-->
 
<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的效率还是不错的
 
第三种最灵活,一般简单的应用可以用这个。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!