網(wǎng)站改版時(shí)晾腔,需要考慮一個(gè)周全的過(guò)渡方案,其中不容忽視的一點(diǎn)就是對(duì)舊版的處理問(wèn)題场绿。即使借助完美的數(shù)據(jù)遷移方案可以使新版從內(nèi)容上完全取代舊版剖效,但我們?nèi)匀徊粦?yīng)該立即徹底廢除掉舊版,因?yàn)椋?/p>
1、網(wǎng)民有可能通過(guò)瀏覽器收藏夾或網(wǎng)摘工具收藏了舊版的很多URL璧尸;
2咒林、搜索引擎可能記錄了舊版的很多URL;
3爷光、其它網(wǎng)站頁(yè)面可能有很多對(duì)舊版頁(yè)面的鏈接垫竞。
因此此時(shí)讓舊版下線,大部分鏈接也就失效了蛀序,用戶以為網(wǎng)站不復(fù)存在了欢瞪,流量突然減少,排名下降徐裸,且影響長(zhǎng)久遣鼓。于是新舊版的過(guò)渡應(yīng)該盡量達(dá)到下面的要求:
1、曾有的鏈接地址仍然有效重贺;
2骑祟、即使用戶去了舊版,也要盡量把用戶帶向新版气笙;
3次企、避免用戶在舊版發(fā)布數(shù)據(jù)。
下面是一個(gè)實(shí)例潜圃,網(wǎng)站www.abc.cn新版即將上線缸棵,我們大概需要做這樣一些工作:
1、新版開(kāi)發(fā)中秉犹,定義404錯(cuò)誤(找不到網(wǎng)頁(yè))處理程序蛉谜,將找不到網(wǎng)頁(yè)的URL中的www替換為www1稚晚,然后重定向崇堵。
2、在abc.cn域名管理平臺(tái)中新建一條DNS的A記錄:www1.abc.cn客燕,指向舊版主站服務(wù)器鸳劳。
3、新版上線時(shí)也搓,將A記錄www.abc.cn修改為指向新版主站服務(wù)器赏廓。
4、關(guān)閉舊版的用戶注冊(cè)傍妒、登錄和發(fā)布信息的入口幔摸。舊版中對(duì)首頁(yè)的鏈接全部改為絕對(duì)路徑www.abc.cn。
5颤练、一定時(shí)間(例如2個(gè)月)后既忆,修改新版的404錯(cuò)誤處理程序,不再重定向到舊版對(duì)應(yīng)頁(yè)面,而是重定向新版某頁(yè)面患雇,比如提示“您訪問(wèn)的頁(yè)面不存在”跃脊,并自動(dòng)跳轉(zhuǎn)到新版首頁(yè)。
6苛吱、同時(shí)進(jìn)入abc.cn域名管理平臺(tái)酪术,刪除A記錄www1.abc.cn,徹底廢除舊版的可訪問(wèn)性翠储。完成新舊版的過(guò)渡绘雁。
自定義404錯(cuò)誤處理程序的具體方法如下。首先制作error404.html援所,新建錯(cuò)誤處理頁(yè)面error404.html咧七,在<body></body>之間編寫如下代碼:
<script language=”javascript”>
var url_host=document.location.host;//獲取主機(jī)名,例如www.abc.cn
var url=escape(document.location);//獲取URL串任斋,例如http://…/…/208.html
var url_new=url.replace(url_host,”www1.abc.cn”);
window.location=url_new;//瀏覽器窗口重定向
</script>
指定Apache錯(cuò)誤處理文件继阻。在Appache2/conf/httpd.conf文件中自定義錯(cuò)誤處理程序,指向剛才制作的error404.html废酷。
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 “The server made a boo boo.”
#ErrorDocument 404 /missing.html
#ErrorDocument 404 “/cgi-bin/missing_handler.pl”
ErrorDocument 404 /… /error404.html
#ErrorDocument 402 http://www.example.com/subscription_info.html
指定Tomcat錯(cuò)誤處理文件瘟檩。在web.xml中添加如下代碼:
<error-page>
<error-code>404</error-code>
<location>/../error404.html</location>
</error-page>