WordPress Permalink 與 IIS 用的 ISAPI_rewrite(zz)

By Jiang | 10月 16, 2006

WordPress 裡有個東西叫做 Permalink, 它是 permanent link 的縮寫. What is that? 簡單的來說它是為了要讓URL看起來更漂亮更易懂, 例如, 如果有一篇文章,它的 URL 是
http://ying.homedns.org/wp/index.php?p=21
http://ying.homedns.org/wp/archives/2005/03/26/DECT數位無線電話/
哪一個容易懂? 當然是後者,一眼就可以看出是 2005 年 3 月 26 日的文章, 標題是”DECT數位無線電話” ^-^
不過,很可惜,那只適用於英文篇名,而我們寫的文章篇名通常是中文的,會有問題. 所以,另一個方式是使用下面的格式,
http://ying.homedns.org/wp/archives/2005/03/26/20/53/24/
也就是說,文章在 2005 年 3 月 26 日 20 時 53 分 24 秒發表,仍然比 index.php?p=21 好多了. 本blog就是用這個方式.

哦? 就這樣? 沒什麼用嘛… 也許你會這樣想. 它之所以被發展出來是有道理的,理由如下:

  1. 第一個原因如上
  2. 搜尋引擎似乎不喜歡參數,如果它搜尋時忽略掉連結中的參數,那你的網站對搜尋引擎會是一片空白. 不過,據我的觀察, google似乎沒這個問題.
  3. 使用者可直接在 URL 上作修改, 就可以瀏覽你的網站, 而不必進到畫面再點選. 例如,
    看 2005 年 3 月 的文章

    1. http://ying.homedns.org/wp/archives/2005/03/

    看 2005 年 3 月 20 日的文章

    1. http://ying.homedns.org/wp/archives/2005/03/20/

    也是很 cool.

當然這些對我們小小的blog是功用不大, 所以我在前一篇才說這不是必要的功能. 但這個對大型的網站,尤其是購物網站,就非常有用了.

要使用這個功能要有一個URL rewrite的模組,Apache web server有內建的 mod_rewrite 模組,但是 IIS 的用戶可就沒那麼幸運了(該死的Microsoft-_-),還好有一家叫作Helicon Tech的公司設計了同樣功能的產品,更好的是Lite版本是免費的,在這裡可下載.

這個東西就是將 URL 依據規則(Rule) 重新改寫,而這其中最重要的就是這些規則了,這些規則決定了如何將網頁伺服器應用程式的語法與呈現給用戶看的 URL 作翻譯. 規則本身很難懂,又是一堆外星文,我是參考了這個仁兄這個仁兄的例子完成的,如下:

  1. # WordPress rewrite rules
  2. RewriteRule /wp/archives/category/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp/wp-feed.php\?category_name=$1&feed=$2 [I,U,O]
  3. RewriteRule /wp/archives/category/?(.*)/ /wp/index.php\?category_name=$1
  4.  
  5. RewriteRule /wp/archives/author/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp/wp-feed.php\?author_name=$1&feed=$2 [I,U,O]
  6. RewriteRule /wp/archives/author/?(.*) /wp/index.php\?author_name=$1 [I,U,O]
  7.  
  8. RewriteRule /wp/feed/?([_0-9a-z-]+)?/?$ /wp/wp-feed.php\?feed=$1 [I,U,O]
  9.  
  10. RewriteRule /wp/archives/([0-9]{4})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([0-9]+)?/?$ /wp/index.php\?year=$1&monthnum=$2&day=$3&hour=$4&minute=$5&second=$6&page=$7 [I,U,O]
  11. RewriteRule /wp/archives/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$ /wp/wp-feed.php\?year=$1&monthnum=$2&day=$3&hour=$4&minute=$5&second=$6&feed=$7 [I,U,O]
  12. RewriteRule /wp/archives/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/trackback/?$ /wp/wp-trackback.php\?year=$1&monthnum=$2&day=$3&hour=$4&minute=$5&second=$6 [I,U,O]

這些東西要寫在

  1. C:\Program Files\Helicon\ISAPI_Rewrite\httpd.ini

裡.

基本上前面的是 regular expression 後面是 format string. 看不懂? 我也不懂-_- 想知道詳情,請看ISAPI_rewrite的document… 如果你都做對了,在管理畫面Options的Permalinks中,structure用

  1. /archives/%year%/%monthnum%/%day%/%hour%/%minute%/%second%/

, update存起來,恭喜你,你的blog就有Permalink的功能了!

UPDATE 4/26/2005

本Blog的網頁伺服器已經換成Apache了,WordPress會自動產生rewriterule,不用維護上面的東西了.

作者: Mark来自: http://ying.homedns.org/wp/archives/2005/03/29/22/34/45/

Topics: Wordpress, 软件使用 | 2,796 views | 1 Comment »


One comment | Add One

  1. lita ford naked - 05/29/2007 at 8:43 上午 #

    lita ford naked…

    lita ford naked…

请您发表评论

姓名 (必填)

Email (不会公开) (必填)

网站


LinkWorth
Hostgator

酷站链接 (Featured Links)

最新评论 (Recent Comments)

  • 阿超: 都32号主机了啊 太牛逼了 想想我去年买的是很还是1号主机第12个呢 呵呵
  • 网络兼职: 呵呵,又是博客主机 没多大意思,哎
  • 李青委: 我喜欢它,以joost为名的网络电视,它的外表和内在一样优秀不是吗?破世而出的JOOST。现在终于有 机会了,很想得到它。请您给1个,谢谢! sunkeyck@yeah.net 李青委
  • 李青委: 我喜欢它,以joost为名的网络电视,它的外表和内在一样优秀不是吗?破世而出的JOOST。现在终于有 机会了,很想得到它。请您给1个,谢谢! sunkeyck@yeah.net
  • 李青委: 我喜欢它,以joost为名的网络电视,它的外表和内在一样优秀不是吗?破世而出的JOOST。现在终于有 机会了,很想得到它。请您给1个,谢谢! sunkeyck@yeah.net
  • bet365备用网址: 博主辛苦了。。

搜索 (Search)

合作伙伴

推荐站点 (Recommendations)

Partner links

WordPressChina
  • 原创博客联盟