網域名稱轉址

维基百科,自由的百科全书
跳转至: 导航搜索
各地中文名稱
大陸 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>

參見[编辑]

参考资料[编辑]

外部連結[编辑]