Gea-Suan Lin's BLOG

Friday, May 19, 2006

為什麼要使用 mod_rewrite?

來講什麼是 mod_rewrite (或是其他類似的東西),以 為例,RSS feed 的輸出大致上會長這樣:

http://group.nctu.edu.tw/rss10/darkkiller

我希望把這類的連線要求都交給 rss10.php 處理,變成這樣:

http://group.nctu.edu.tw/rss10.php?g�rkkiller

這就是 mod_rewrite 要做的事情。

那麼用 mod_rewrite 有什麼好處?我可以想到這幾點:

  • 服務的穩定性:對於發展中的平台而言,mod_rewrite 提供了彈性,使得底層的改變 (譬如 rss10.php 變成 rss10-2.php) 不會影響到上層的 URL,對於使用者而言不會有感覺。
  • SEO:Search Engine 會比較偏好沒有 ?& 的 URL。

像無名的 RSS 與文章 (以彎彎的 Blog 為例) 就做的不太好:

  • http://www.wretch.cc/blog/cwwany&rss20=1
  • http://www.wretch.cc/blog/cwwany&article_idU76574

比較好的作法可能是改成這樣:

  • http://www.wretch.cc/blog/cwwany/rss20
  • http://www.wretch.cc/blog/cwwany/5576574

甚至改成 feed.wretch.cc,一開始先用 VirtualHost 跑在同一台上,以後如果發現 RSS 愈來愈吃重,需要以獨立的機器分出來就更方便了。