絕對路徑和相對路徑的區別

2020-07-16 10:05:20
絕對路徑指的是包含域名的完整網址,相對路徑指的是不包含域名的被連結頁面相對於當前頁面的相對網址。

比如頁面 A 的 URL 是 http://c.biancheng.net/view/2225.html,頁面 B 的URL是 http://c.biancheng.net/view/456.html,頁面 A 連結到頁面 B 時使用的程式碼如下:

<a href="/view/456.html">頁面B的連結文字</a>

這就是相對路徑。

如果使用完整的 URL:

<a href="http://c.biancheng.net/view/456.html">頁面B的連結文字</a>

也就是瀏覽器位址列中所顯示的完整的 URL,就是絕對路徑。

網站應該使用絕對路徑還是相對路徑呢?對SEO有什麼影響?沒有絕對答案,兩者各有優缺點。

絕對路徑

絕對路徑的優點如下:
  • 如果有人抄襲、採集你的網站內容,抄襲者比較懶,連頁面裡面的連結一起原封不動地抄襲過去,絕對路徑連結還會指向你的網站,增加網站外連及權重。
  • 網站有 RSS 輸出時,內容會被一些 Feed 聚合網站抓取顯示。同樣,頁面裡指向原網站的連結會被保留。
  • 有助於預防和解決網址規範化問題。

假設站長希望被收錄的 URL 是帶 www 的版本,由於技術原因不能從 http://example.com 做 301 轉向到 http://www.example.com,所有頁面中的連結使用絕對路徑,例如:

http://www.example.com/article.html
http://www.example.com

網頁連結以絕對路徑的形式寫入 HTML 檔案,即使有蜘蛛或使用者偶然存取不帶 www 的版本,如 http://example.com/article.html,這個頁面上的絕對路徑連結還是會把蜘蛛和使用者帶回到 www 的 URL 版本,有助於搜尋引擎蜘蛛識別到底哪個版本是規範化的。

即使網頁移動位置,網頁中的連結還是指向正確的 URL。

絕對路徑缺點如下:
  • 除非連結是動態插入的,不然不好在測試伺服器上進行測試。因為裡面的連結將直接指向真正域名的 URL,而不是測試伺服器上的 URL。
  • 除非連結是動態插入的,不然移動頁面將比較困難。因為頁面位置發生變化,其他頁面鏈向本頁面的連結可能無法跟著變化,還指向原來的已經寫死的絕對路徑。
  • 程式碼比較多。連結數量大時,多出來的字元可能使 HTML 檔案變大不少。

相對路徑

相對路徑正好相反,優點如下:
  • 移動內容比較容易,不用更新其他頁面上的連結。
  • 在測試伺服器上進行測試比較容易。
  • 節省程式碼。

相對路徑的缺點如下:
  • 頁面移動位置,裡面的連結可能也需要改動。
  • 被抄襲和採集的網站沒有任何益處。不過很多採集軟體其實是可以自動鑑別絕對路徑和相對路徑的,所以使用絕對路徑有助於自己的連結留在採集網站上,只在某些情況下是有效的。
  • 搜尋引擎解析 URL 時可能出錯,不能正確讀取頁面上的連結 URL。

如果不能做 301 重定向,因而產生了嚴重的網址規範化問題,使用絕對路徑有助於解決網址規範化問題。如果文章被大量轉載、抄襲,使用絕對路徑可以帶來一些外部連結。除此之外,使用相對路徑比較簡單。

在正常情況下,相對路徑不會對網站有什麼副作用,絕對路徑也不會有什麼特殊好處。搜尋引擎錯誤解析相對路徑URL的可能性是非常低的。