寫在前面的長長的吐槽——
這幾天阿頭一拍腦門決定要把A站遷至B站,而B站原本是一個 wordpress 站點,於是就 order 小雪把原本根目錄下的 wordpress 站遷至新建的二級目錄下,把A站的所有內容放置在B站的根目錄,又因為捨不得原來B站已有的流量與PR等,所以又要小雪做301重定向至新網址(人心不足蛇吞象)。這兩個網站都不是小雪做的也不是小雪在養的,總之,order 嘛,你懂的。
然後小雪把比較麻煩的 wordpress站點遷移與301重定向先處理好,再把A站點上傳至B站空間根目錄下,打開首頁無法顯示,噢耶(^o^)/ 原來B站所在是 LINUX主機,而A站是 ASP站點,呵呵。果然是一拍腦門做的決定。當然,事前沒有看清楚系統不同的小雪也有責任在喇。總之報告給啊頭后,人家說,「是齁,那就把他們都遷至 WIN主機好了」。翻桌!!!摔!!!!!!小雪不得不在心裡 LOOP 默唸,人家有給你薪水的人家有給你薪水的人家有給你薪水的……
= 吐槽完畢,以下正文 =
主機操作系統類型是 Windows server 2003 Enterprise Edition Service Pack 2
IIS服務器版本是 V6.0
設置非常乾淨的一個主機,that means 小雪要自己配置PHP+MYSQL ,爲了實現偽靜態和301重定向還要安裝 Rewrite 組件,再次摔!!!
還算主機商有點良心,在硬盤里放了一些安裝包供參考選擇,比如 ISAPI_Rewrite3 的安裝包。
ISAPI Rewrite 是國外開發的付費組件,它分Lite版本及Full版本, Full版本才能給每個虛擬主機用戶單獨配置Rewrite規則,我們需要的正式Full版本,而主機商提供的就是Full版本的破解版。雖然是全英的安裝過程,不過也不必感到恐懼,「NEXT」按鈕一直按下去就沒錯了。安裝好后,替換破解文件,修改 httd.conf ,重啟IIS就好了。
(安裝過程可以參考此文: http://www.dreamfy.com/notes/other/1282.html 。)
摸摸主機商的良心,原來還是有的。小雪右鍵「網站」 -「 屬性 」- 「ISAPI 篩選器」 ,發現已經列有 ISAPI_Rewrite3 了。
點擊 「ISAPI_Rewrite」 標籤,可以查看與修改 httpd.conf 文件。
在「Web 服務擴展」中也可以看到 ISAPI_Rewrite3 已被允許。
ISAPI_Rewrite3 组件是通过 .htaccess 文件来加载规则的。首先選擇具體某個網站,右鍵「屬性」,點擊「ISAPI 篩選器」,可以看到現在還是空白的列表。
點擊「添加」按鈕,輸入「篩選器名稱」與「可執行文件」地址。
可執行文件選擇 ISAPI_Rewrite.dll 所在路徑位置,按下「確定」按鈕。
不嫌麻煩地重啟IIS。
接著點擊 「ISAPI_Rewrite」 標籤,點擊「Edit」按鈕,添加規則,下圖系已經完成的截圖。
點擊 Edit 后就會彈出一個編輯器,上面一排按鈕的功能分別是「應用/確定」,「取消/放棄」,「regex正規表示式測試」,「註釋」,「取消註釋」、「hidden屬性標記」。
regex正規表示式測試是一個很有用的功能,只要你在 「Rule」 欄輸入規則,在 「Test string」 欄輸入測試字串,就可以驗證你的規則是否正確。也可以直接輸入 「Regexp」 欄與 「Format string」 欄來生成你的regex正規表示式。
需要注意的是,ISAPI_Rewrite3 所用的regex正規表示式規則跟我們平常使用的不同,具體可以參考安裝文件夾內的手冊 「ISAPI_Rewrite.chm」 ,也可以參考此文: http://www.pc6.com/infoview/Article_49936_all.html 。
另外, ISAPI_Rewrite 3 版本跟之前的版本的規則也不同,建議始終更新至最新版本使用。
最後,總之……
小雪是要將 domain.com/23435.html 這樣的URL設置301重定向至二級目錄下同地址 domain.com/wp/23435.html ,小雪設置的規則如下:
RewriteEngine on
RewriteRule ^[d]+.html /wp/$0 [R=301,L]
Leave a Reply