
網域名稱轉址
![]() |
「網域名稱轉址」的各地常用別名 | |
---|---|
中国大陸 | URL重定向 |
港臺 | 網域名稱轉址、URL重新導向 |
网域名称转址(英語:URL redirection,台湾作URL重新導向,又称作网址重定向),是指當使用者瀏覽某個網址時,將他導向到另一個網址的技術。常用来将长網址轉成较短的網址,便于记忆;或用于网址的迁移和更换。這种技術使一個網頁是可藉由不同的統一資源定位符(URL)連結。
目的[编辑]
相似網域名稱[编辑]
为了防止瀏覽者将网址輸入錯誤,如将google.com输成gooogle.com或googel.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头轉址[编辑]
HTTP状态码的3xx重定向有多種代碼方式,不同的代碼有其對應的意圖,主要分為:
- 300=Multiple Choices
- 301=Moved Permanently
- 302=Found
- 303=See Other
- 304=Not Modified
- 305=Use Proxy
- 306=(Unused)
- 307=Temporary Redirect
其中301、302、307最為常見,301代表永久轉址,對於搜尋引擎判定頁面改變有直接影響,302代表暫時轉址,通常用於頁面暫時修改,之後會在恢復網址時使用。在搜尋引擎優化上,將錯誤的302轉址改成301轉址對網站排名有相當作用。
使用301跳转,搜索引擎(如Google搜索)会将原链接的大部分link equity转移至新链接,这意味着原页面(URL)将可能被从索引中移除而不会出现在搜索结果列表(SERP)中,被转向的新URL将被索引并出现在SERP中,且排名将可能接近原页面URL。
使用PHP轉址到http://www.example.com/。
<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.example.com/');
exit();
或者使用HTTP响应头Refresh
来实现(Refresh
原本是用于N秒刷新到指定URL。)
<?php
header( 'Refresh: 0; url=http://www.example.com/' );
exit();
Apache mod_rewrite[编辑]
- Apache HTTP Server的 mod_alias 扩展
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>Hj </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>
參見[编辑]
参考资料[编辑]
- ^ 关于停止域名URL转发服务的通知 互联网档案馆的存檔,存档日期2010-01-18.
外部連結[编辑]
- Mapping URLs to Filesystem Locations (页面存档备份,存于互联网档案馆)
- Paper on redirection spam (UC Davis) (页面存档备份,存于互联网档案馆)
- Security vulnerabilities in URL Redirectors (页面存档备份,存于互联网档案馆) The Web Application Security Consortium Threat Classification
- 301 Redirects for moved pages using .htaccess (页面存档备份,存于互联网档案馆)
- 301-redirect.info, site summarizing redirection methods in Apache, PHP, ASP, JPs or ColdFusion programming
- Redirecting your visitors to your preferred domain using 301 permanent redirects — rationale and mod_rewrite/PHP/ASP.NET implementations