URL http重定向是從一個URL到另一個URL的自動URL更改操作。
URL頁面重定向是從一個URL到另一個URL的自動URL更改操作。
進行此重定向的原因如下:
用戶可以從舊的外部鏈接或書籤訪問舊的URL。
由網站的網站管理員添加腳本。
服務器端重定向是通過配置Apache / IIS服務器軟件或使用PHP / ASP / ASP.NET腳本在服務器中完成的。
這是重定向URL的首選方式,因為您可以返回HTTP 301永久移動狀態代碼。
搜索引擎使用301狀態將頁面排名從舊URL轉移到新URL。
客戶端重定向是通過使用HTML元刷新標記或Javascript代碼在用戶的Web瀏覽器中完成的。
客戶端重定向不是首選,因為它不返回HTTP 301狀態代碼。
域名 名稱 |
託管 服務器 |
重定向代碼 放置 |
---|---|---|
沒有改變 | 沒有改變 | 同一服務器上的舊頁面 |
沒有改變 | 變了 | 新服務器上的舊頁面 |
變了 | 沒有改變 | 同一服務器上的舊頁面 |
變了 | 變了 | 舊服務器上的舊頁面 |
*僅適用於.htaccess重定向:將重定向代碼添加到httpd.conf文件或.htaccess文件。
狀態碼 | 狀態碼名稱 | 描述 |
---|---|---|
200 | 好的 | 成功的HTTP請求 |
300 | 多項選擇 | |
301 | 永久移動 | 永久URL重定向 |
302 | 找到了 | 臨時URL重定向 |
303 | 查看其他 | |
304 | 未修改 | |
305 | 使用代理服務器 | |
307 | 臨時重定向 | |
404 | 未找到 | 找不到網址 |
HTTP 301已永久移動狀態代碼表示永久URL重定向。
301重定向是重定向URL的首選方式,因為它會通知搜索引擎該URL已經永久移動,並且搜索引擎應將新的URL頁面而不是舊的URL頁面放入搜索結果中,然後轉移新的URL頁面,舊網址頁面的頁面等級。
301重定向可以跨域或在同一域上完成。
Google建議使用301重定向。
重定向腳本 | 重定向方 | 舊頁文件類型 | 重定向URL或域名 | 舊網址服務器類型 | 301重定向支持 |
---|---|---|---|---|---|
PHP | 服務器端 | .php | 網址 | Apache / Linux | 是的 |
ASP | 服務器端 | .asp | 網址 | IIS / Windows | 是的 |
ASP.NET | 服務器端 | .aspx | 網址 | IIS / Windows | 是的 |
.htaccess | 服務器端 | 全部 | 網址/域名 | Apache / Linux | 是的 |
IIS | 服務器端 | 全部 | 網址/域名 | IIS / Windows | 是的 |
HTML規範鏈接標記 | 客戶端 | .html | 網址 | 全部 | 沒有 |
HTML元刷新 | 客戶端 | .html | 網址 | 全部 | 沒有 |
HTML框架 | 客戶端 | .html | 網址 | 全部 | 沒有 |
Java腳本 | 客戶端 | .html | 網址 | 全部 | 沒有 |
jQuery的 | 客戶端 | .html | 網址 | 全部 | 沒有 |
重定向腳本-用於重定向的腳本語言。
重定向端-進行重定向的位置-服務器端或客戶端。
舊頁面文件類型-舊URL頁面的類型,可以包含重定向代碼的腳本語言。
重定向URL或域-不支持單個網頁的URL重定向或整個網站的域重定向。
典型的舊URL服務器類型-服務器的典型軟件和操作系統。
301重定向支持-指示是否可以返回永久301重定向狀態響應。
將重定向代碼替換為new-page.php替換old-page.php代碼。
old_page.php:
<?php
// PHP permanent URL redirection
header("Location: http://www.mydomain.com/new-page.php", true,
301);
exit();
?/
舊頁面必須具有.php文件擴展名。
新頁面可以帶有任何擴展名。
另請:PHP重定向
.htaccess文件是Apache服務器的本地配置文件。
如果您有權更改httpd.conf文件,則最好在httpd.conf中而不是.htaccess文件中添加Redirect指令。
從old-page.html永久重定向到new-page.html。
.htaccess:
Redirect 301 /old-page.html http://www.mydomain.com/new-page.html
從所有域頁面永久重定向到newdomain.com。
.htaccess文件應位於舊網站的根目錄中。
.htaccess:
Redirect 301 / http://www.newdomain.com/
請參閱:.htaccess重定向
old-page.asp:
<%@ Language="VBScript" %/
<%
' ASP permanent URL redirection
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.mydomain.com/new-page.html"
Response.End
%/
old-page.aspx:
<script language="C#" runat="server"/
// ASP.net permanent URL redirection
private void Page_Load(object sender, EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.mydomain.com/new-page.html");
Response.End();
}
</script/
HTML元刷新標記重定向不會返回301永久重定向狀態代碼,而是被Google視為301重定向。
用您要重定向到的頁面的URL的重定向代碼替換舊頁面。
old-page.html:
<!-- HTML meta refresh URL redirection --/
<html/
<head/
<meta http-equiv="refresh"
content="0; url=http://www.mydomain.com/new-page.html"/
</head/
<body>
<p>The page has moved to:
<a href="http://www.mydomain.com/new-page.html">this
page</a></p>
</body>
</html>
請參閱:HTML重定向
JavaScript重定向不會返回301永久重定向狀態代碼。
用您要重定向到的頁面的URL的重定向代碼替換舊頁面。
old-page.html:
<html>
<body>
<script type="text/javascript">
// Javascript URL redirection
window.location.replace("http://www.mydomain.com/new-page.html");
</script>
</body>
</html>
請參閱:Javascript重定向
jQuery重定向實際上是另一種Javascript重定向。
jQuery重定向不返回301永久重定向狀態代碼。
用您要重定向到的頁面的URL的重定向代碼替換舊頁面。
old-page.html:
<!DOCTYPE html>
<html>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
//
jQuery URL redirection
$(document).ready( function() {
url = "http://www.mydomain.com/new-page.html";
$( location ).attr("href",
url);
});
</script>
</body>
</html>
請參閱:jQuery重定向
規範鏈接不會重定向到首選URL,但是對於大多數流量來自搜索引擎的網站,它可以替代URL重定向。
當存在多個內容相似的頁面並且您想告訴搜索引擎您希望在搜索結果中使用哪個頁面時,可以使用HTML規範鏈接標記。
規範鏈接標記可以鏈接到相同的域,也可以鏈接到跨域。
將規範鏈接標記添加到舊頁面以鏈接到新頁面。
將規範鏈接標記添加到您不希望獲得搜索引擎流量的頁面,以鏈接到該頁面。
規範鏈接標記應添加在<head>部分中。
old-page.html:
<link rel="canonical" href="http://www.mydomain.com/new-page.html">
請參閱:規範URL鏈接
在框架重定向中,通過html框架查看new-page.html文件。
這不是真正的URL重定向。
框架重定向對搜索引擎不友好,因此不建議使用。
old-page.html:
<!-- HTML frame redirection -->
<html>
<head>
<title>Title of new page</title>
</head>
<frameset cols="100%">
<frame src="http://www.mydomain.com/new-page.html">
<noframes>
<a href="http://www.mydomain.com/new-page.html">Link
to new page</a>
</noframes>
</frameset>
</html>