語義URL,也稱乾淨的URL(clean URL)、用戶友好的URL(user-friendly URL)、漂亮的URL(pretty URL)、搜尋引擎友好的URL(search engine-friendly URL)、RESTful URL,是旨在提高網站Web應用程式Web服務可用性可訪問性的Web地址或統一資源定位符 (URL) 對非專家用戶具有直接、直觀的意義。此類URL方案往往反映信息集合的概念結構,並將用戶界面與伺服器的信息內部表示解耦合。使用語義URL的其他原因包括搜尋引擎優化(SEO)、[1]符合軟體架構的表現層狀態轉換 (REST) 風格,以及確保各個Web資源始終保持在同一URL。這使得全球資訊網成為一個更加穩定和有用的系統,並允許為網絡資源添加更持久和可靠的書籤。[2]

語義URL不包含底層Web應用程式的實現細節。這樣做的好處是減少了以後更改資源實施的難度。例如,許多URL包含伺服器端腳本的文件名,例如example.phpexample.aspcgi-bin。 如果資源的底層實現發生更改,此類URL也需要隨之更改。同樣,當URL不「乾淨」時,如果移動或重組站點資料庫,則有可能導致內部和外部站點的連結損壞,後者可能導致從搜尋引擎列表中刪除。使用語義URL可以為用戶代理提供一致的資源位置,而不管內部結構如何。使用語義URL的另一個潛在好處是隱藏內部伺服器或應用程式信息可以提高系統的安全性。[1]

結構

編輯

URL通常包含路徑、腳本名稱和查詢字符串。查詢字符串參數規定要在頁面上顯示的內容,並且經常包含不透明或與用戶無關的信息,例如資料庫中值的內部數字標識符、難以 辨認的編碼數據、會話 ID、實現細節等。相比之下,乾淨的URL僅包含資源的路徑,其層次結構反映了用戶可以輕鬆解釋和操作的某些邏輯結構。

最初的URL 乾淨的語義URL
http://example.com/about.html http://example.com/about
http://example.com/user.php?id=1 http://example.com/user/1
http://example.com/index.php?page=name http://example.com/name
http://example.com/kb/index.php?cat=1&id=23 http://example.com/kb/1/23
http://zh.wikipedia.org/w/index.php?title=Clean_URL http://zh.wikipedia.org/wiki/Clean_URL

實現

編輯

語義URL的實現涉及通過模式匹配或透明重寫技術進行URL映射。由於這通常發生在伺服器端,因此語義URL通常是用戶看到的唯一形式。

出於搜尋引擎優化的目的,網絡開發人員經常利用這個機會在URL中包含相關關鍵字並刪除不相關的單詞。刪除的常見單詞包括冠詞和連詞,同時添加描述性關鍵字以提高用戶友好性並提高搜尋引擎排名。[1]

片段標識符可以包含在語義URL的末尾以供頁面內引用,並且不需要是用戶可讀的。[3]

slug 通常是根據頁面標題自動生成的,但也可以手動輸入或更改,因此,雖然頁面標題仍然設計用於顯示和人類可讀性,但其 slug 可以針對簡潔性或供搜尋引擎使用進行優化,並提供 共享裸 URL 的接收者大致了解該頁面的主題。 長頁面標題也可能被截斷,以將最終 URL 保持在合理的長度。

段頭可以完全小寫,重音字符替換為拉丁字母中的字母,空白字符替換為連字符或下劃線以避免被編碼。 標點符號通常會被刪除,有些還刪除簡短的常用單詞,例如連詞。 例如,標題「這個、那個、還有那個!」 Outré Collection 可以生成一個由 this-that-other-outre-collection 組成的 slug。

URL slug 的另一個好處是可以方便地從一長串沒有頁面標題的 URL 中找到所需的頁面,例如使用瀏覽器擴展導出的打開選項卡的最小列表,以及預覽目標的大致標題的能力 瀏覽器中的頁面(如果超連結到無標題)。

如果本地保存網頁的工具使用最後一個斜槓後面的字符串作為默認文件名(如 wget 那樣),則 slug 會使文件名更具描述性。

使用 slugs 的網站包括在斜線後帶有問題標題的 Stack Exchange Network,以及帶有 ?taken-by=username URL 參數的 Instagram。[6][7]

Slug是網站開發中常用術語,該名稱來源於新聞媒體中使用的slug英語slug (publishing)一詞,表示內部使用的文章的簡稱。因此意指以文章標題生成簡短、可讀性強的URL,通常用於文章、頁面或產品的永久連結。它主要由小寫字母、數字和連字符組成,能夠更好地代表內容,並有利於搜尋引擎優化

某些系統將slug定義為URL的一部分,以人類可讀的關鍵字標識頁面。[4][5]它通常是URL的結尾部分(特別是路徑/路徑信息部分),可以解釋為資源的名稱,類似於文件名中的Basename或頁面標題。

slug通常是根據頁面標題自動生成的,但也可以手動輸入或更改,因此,雖然頁面標題仍然設計用於顯示和人類可讀性,但其slug可以針對簡潔性或搜尋引擎優化,並讓共享的裸URL的接收者大致了解該頁面的主題。長頁面標題也可能被截斷,以將最終URL保持在合理的長度。

段頭可以完全小寫,重音字符替換為拉丁字母中的字母,空白字符替換為連字符或下劃線以避免被編碼。標點符號通常會被刪除,有些還刪除簡短的常用單詞,例如連詞。 例如,標題「This, That, and the Other! An Outré Collection」 Outré Collection 可以生成slug為this-that-other-outre-collection

URL slug的另一個好處是可以方便地從一長串沒有頁面標題的URL中找到所需的頁面,例如使用瀏覽器擴展導出的打開選項卡的最小列表,以及預覽目標的大致標題的能力。

如果本地保存網頁的工具使用最後一個斜槓後面的字符串作為默認文件名(如wget所為),則slug會使文件名更具描述性。

使用slugs的網站包括在斜線後帶有問題標題的Stack Exchange Network,以及帶有?taken-by=username URL參數的Instagram[6][7]

參見

編輯

參考文獻

編輯
  1. ^ 1.0 1.1 1.2 Opitz, Pascal. Clean URLs for better search engine ranking. Content with Style. 28 February 2006 [9 September 2010]. (原始內容存檔於6 January 2012). 
  2. ^ Berners-Lee, Tim. Cool URIs don't change. Style Guide for online hypertext. W3C. 1998 [6 March 2011]. (原始內容存檔於2022-11-05). 
  3. ^ Uniform Resource Identifier (URI): Generic Syntax. RFC 3986. Internet Engineering Task Force. [2 May 2014]. (原始內容存檔於2012-12-04). 
  4. ^ Slug in the WordPress glossary. [2023-08-20]. (原始內容存檔於2023-01-19). 
  5. ^ Slug in the Django glossary. [2023-08-20]. (原始內容存檔於2016-05-03). 
  6. ^ Question URL slugs based on title. Meta Stack Exchange. 2011-10-10 [2023-08-20]. (原始內容存檔於2023-08-20). 
  7. ^ 16 Best Instagram Tricks And Hidden Features You Must Know. Fossbytes. 2017-08-04 [2023-08-20]. (原始內容存檔於2023-07-01). 

外部連結

編輯