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>