WordPress 設定 IIS ISAPI_Rewrite

由於 IIS 本身沒有內建類似 Apachemod_rewrite 功能,為了讓自己的 wordpress 能夠擁有簡短漂亮的靜態網址(Permalinks),連續幾天測試 wordpress 和 IIS 的 rewrite 設定,搞到快發瘋,昨天大致上初步完成,幾個比較重要的連結目前已經可以正常瀏覽、分頁,其它較細部的 links 就不知道 RewriteRules 有沒有正確了,有待慢慢測試驗證。

我是使用 Helicon Tech.ISAPI_Rewrite 3.1 Lite,因為是免費的,所以功能有些許精簡,不過對一般人來說已經夠用了。網站上有建立詳細教學文件供使用者參考,或是安裝完 ISAPI_Rewrite 會在安裝資料夾下提供一個檔名為 ISAPI_Rewrite.chm 的 help 檔,二者內容相同。

網路會搜尋到很多 RewriteRules 的範例是 [ISAPI_Rewrite] 開頭的 httpd.ini,這是舊版的 ISAPI_Rewrite 設定,目前 ISAPI_Rewrite 3.1 新版本的設定檔是以 RewriteEngine on 開頭的 httpd.conf,與 Apache 一致,只要將網路上找到的設定檔複製到 ISAPI_Rewrite Manager 的 Config Editor,按下『Apply』之後,它會自動檢查語法正確性。

ISAPI_Rewrite 設定視窗 - 小

而昨天之所以一直搞不定 Permalinks 的原因在於無法換頁,不管是 blog 文章換頁、Categories 換頁、或是 Archives 換頁,只要遇到 nextpage 就挫賽(出現 404 或是找不到文章),幸好 wordpress 官網討論串:permalink nextpage doesn’t work 拯救了我,裡面有提到以 [_0-9a-z-] 來取代 .,譬如:(.*) 改為→([_0-9a-z-]*),結果照作之後還真的解決了換頁問題,納悶…