URL重定向

维基百科,自由的百科全书
(重定向自重定向
跳转至: 导航搜索
各地中文名称
大陆 URL重定向
台湾 網域名稱轉址、URL重新導向

网域名称转址英语URL redirection,或称网址重定向URL重定向),是指当用户浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网站网址,转成较短的网址。因为当要传播某网站的网址时,常常因为网址太长,不好记忆;又有可能因为换了网络的免费网页空间,网址又必须要变更,不知情的用户可能会认为网站关闭了。这时就可以用网络上的转址服务了。这个技术使一个网页是可借由不同的统一资源定位符(URL)链接。

目的[编辑]

网页管理员有多个不同理由使用域名转址:

相似域名[编辑]

浏览者可能输入错误的域名,如:gooogle.com或googel.com。机构或团体不时会注册这些拼字不正确的域名名,重定向到正确地方:google.com。例如:example.com和example.net两者均会重定向至像是example.org的单一域名或网页。这个技术不时用于保留其他相同名称的高级域名(TLDs),或是使真正的.edu或.net重定向至更能辨识的.com域名。

移动网站至新域名[编辑]

为何重定向一个网页?

  • 网站需要改变它的域名。
  • 作者移动他/她的网页至新域名。
  • 2个网站结合。

借由域名转址,过时的网址可以转址到正确地址。这些链接可能来自其他尚未知道域名改变的网站,或是存储于用户浏览器的书签/我的最爱。

相同的道理套于搜索引擎。它们不时会有旧或过时的域名和链接,在它们的数据库内,带用户到旧的网址。使用域名转址,浏览者最后会到达正确的页面。另外,在下一次的“搜索引擎通过”,搜索引擎会侦测及使用新的网址。

记录外送链接[编辑]

大部份的网页服务器的访问记录,保存了有关浏览者来源和如何浏览网站的详细数据,但是不会记录浏览者由那些链接离开,这是因为浏览者的浏览器,不需要在浏览者按下外接链接时,与原来的服务器沟通。

这个信息可由多个途径获取。其中一个途径涉及域名转址。链接可以转到在原来的域名的一个统一资源地址,它会重导向至真正目标,而不是直接链接至其他网站。这会增加一个请求至网页服务器,而这个多出来的请求,会在服务器的访问记录留下记录,说明了那个链接曾被点击。这个技术亦被一些公司网站采用,用以显示"警告"页面,指出内容是非该站内容和该站无关。这个技术有不足之处,是它会增加一个请求至原本的网页服务器,造成延迟。对于一些希望在自动转址前,显示"警告"页面的网站,显示警告消息的时间长度是一个附加的延迟。

简化网址[编辑]

现时,网站工程师倾向在网址传递带描述性的属性,以表示数据的结构层次,命令结构,交易路径(transaction paths)及会话(session)信息。这使得网址感觉上不友善,且难以记忆。有些时候,网站工程师会将页面的网址通过这样的方法简化。所以网址改变后,内容也没有改变。

局部地区的使用限制[编辑]

一般情况下,中国大陆地区在域名代理网站使用域名管理时,都可以自行设定A记录、URL转址等解析操作。

2009年12月28日,中国历史最久、规模最大的域名代理商万网发出公告,称为了切实落实工业和信息化部发出的《工业和信息化部关于进一步深入整治手机淫秽色情专项行动工作方案》(工信部电管【2009】672号)的精神,贯彻落实依法打击手机淫秽色情专项行动方案,防止违规网站利用变换域名等手段逃避监管的行为,决定将于2009年12月29日下午2:00起紧急停止域名URL转发服务。[1]随后,万网又告知客户,在已获取网站备案和独立IP的情况下,用户可以花费购买URL转发服务,价格最低100元/5个(人民币)URL转发记录。这意味着原来捆绑在域名费用里面、免费设置URL转发的功能,被单独提出,变成收费服务。

目前,另一域名商新网也实施该项措施。

技术[编辑]

HTTP标头转址[编辑]

  • 使用PHP转址到http://www.example.com/
<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.example.com/');
exit();
<?php
header( 'Refresh: 0; url=http://www.example.com/' );
exit();

Apache mod_rewrite[编辑]

  • Apache HTTP Server's mod_alias extension
Redirect permanent /oldpage.html http://www.example.com/newpage.html
Redirect 301 /oldpage.html http://www.example.com/newpage.html
  • Apache mod_rewrite
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^.:]+\.)*oldsite\.example\.com\.?(:[0-9]*)?$ [NC]
RewriteRule ^(.*)$ http://newsite.example.net/$1 [R=301,L]

HTML的Refresh Meta tag and HTTP refresh header[编辑]

<html>
    <head>
        <meta http-equiv="Refresh" content="0; url=http://www.example.com/" />
    </head>
    <body>
    </body>
</html>

JavaScript redirects[编辑]

window.location='http://www.example.com/';

HTML的Frame redirects[编辑]

<html>
    <frameset rows="100%">
      <frame src="http://www.example.com/">
    </frameset>
</html>

参见[编辑]

参考资料[编辑]

外部链接[编辑]