本格內部的 URL 結構(permalink),或是叫 URL 型式比較白話,開格以來一直是用 “/archives/%year%/%monthnum%/%day%/%hour%/%minute%/%second%/” 的樣式,在前文前半部有說明,例如
https://blog.gspirits.org/wp/archives/2005/03/26/20/53/24/
最近,覺得這樣的 URL 太長了,想換短一點.
可是,改 URL 型式 WordPress 是隨時都可以改,但有很大的影響 — 會造成所有舊的 URL 失效,例如搜尋引擎記住的、別人 bookmark 的、別的文章引用的,統統連不到原來文章,這是不太可以接受的.
原本 http 協定支援一個叫做 “301 Moved Permanently” 的碼,就是用在這種需求:
- Client 連到舊的 URL
- Server 端回覆 “301 Moved Permanently” 及新的 URL
- Client 連到新的 URL
WordPress 內建是不會有這樣的行為,改了新的就改了,連到舊的 URL 會回覆 “404 Not found”. 幸好有位很強的仁兄寫了一個 plugin — Dean’s Permalinks Migration,裝上去,Activate 它,然後在管理畫面:Options -> PermalinksMigration 填上舊的 permalink,Options -> Permalinks 就可以填上新的 permalink 格式了.
URL 如果能加上文章的標題是最好的選擇,如果用 “/%year%/%monthnum%/%day%/%postname%/”,產生如 “https://blog.gspirits.org/wp/2007/03/01/瑞典來的原木鍵盤/” 這樣的 URL,一目了然,老外的英文文章大都是如此,但 URL 中用中文字還是有些問題的,所以退而求其次用文章 id — “/%year%/%monthnum%/%post_id%/”,例如 “https://blog.gspirits.org/wp/2007/03/181/”,也是很簡潔.
Update 4/24/2007
新版 0.7 的 Permalink Redirect plugin 也加了這個功能。
Pingback: WordPress 固定網址 (Permalinks) 的寫法 | 三腳貓學狗叫WordPress 固定網址 (Permalinks) 的寫法 | |