不久前因為各種端由,韋文成博客存在的地方服務器系統從Linux換回到達Windows 2003,博客也因為這個幾天沒能正常過訪。
韋文成博客所運用的是Wordpress系統,在Nginx下施行偽靜態是相當容易非常簡單的事物,可是運用了IIS6就不是那末回事了,網上找了些IIS下Wordpress施行偽靜態的辦法,但大都不理想,譬如利用404,利用ISAPI_ReWrite施行偽靜態,總會有這麼那樣子的問題。
無意中發覺可以利用WordPress URL Rewrite完美解決碰到的問題。
Windows2003 IIS6下配備布置WordPress偽靜態辦法:
1.下載WordPress URL Rewrite組件
下載地址:/wordpress-url-rewrite
WordPress URL Rewrite主邀功能與獨特的風格:絕對無須人工過問,全半自動重寫URL,只消在後臺設置好固定鏈接(Permalinks)方式,就能直接運用,就像linux下用htaccess同樣。可以運用在一級目次和細目錄,也可以擯除不必重寫的目次。這個十分便捷,對於某些目次不必URL重寫的就將其擯除,不會導致沒有辦法過訪。由於全半自動,所免得去了在寫重寫規則時刻碰到的規則重復導致局部目次日文件沒有辦法成功實現的事情狀況。
2.安裝WordPress URL Rewrite
把下載的壓縮包解壓到不論什麼地方,只要保障WordPressURLRewrite.ini和WordPressURLRewrite32.dll(32位版本,64位版本對應為64.dll)在同一文件夾下就可以了。
而後敞開WordPressURLRewrite.ini設置你的博客目次,以及需求擯除的目次,Readme.txt裡有周密解釋明白,這處就不細說了。
接下來,在IIS中挑選相應的站點,在ISAPI用篩子選器中加載WordPressURLRewrite32.dll就可以了,加載完重啟IIS還是休止網站再開始工作即可。
注意:要給dll存在的地方的目次加上IIS_WPG組的寫入職權范圍,否則沒有辦法加載對應dll文件。
假如箭頭紅色況且向下,請試驗查緝組件文件夾的職權范圍。
至此配備布置已經絕對OK了,由於韋文成博客的文章、欄目、tag綽號均是用的英文,不過假如你的博客途徑存在漢字名,就得往下看了(以下辦法為過載,未親身測試)。
存在並需求解決的問題:
(1)漢字的tag沒有辦法過訪
解決方法:需求運用ISAPI_Rewrite來寫一條規則:
RewriteRule /tag/(.*) /index\.php\?tag=$1
(2)包括漢字的網址不可以過訪
1.安裝ISAPI_Rewrite
網站根目次下新樹立一個httpd.ini文件,用記事本或是EditPlus敞開,規則寫在httpd.ini裡,如下所述:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule /tag/(.*)/ /index\.php\?tag=$1
如今漢字tag是能過訪了,不過仍然存在問題。
存在的問題:
(1) tag頁面的文章超過1頁,翻頁時都不可以過訪
解決方法:改正這條規則為:
RewriteRule /tag/[^/]+)/([^/]+)/?([0-9]+)?/ /index.php?tag=$1&paged=$3 [L]
不過改正在這以後漢字tag又不可以過訪了,放心,繼續看下一步。
2.改正wp-include中的classes.php
接著改正第一步中的問題,由於改正Rewrite規則在這以後漢字tag仍然不可以過訪,包括漢字的網址也不可以過訪。最好運用專門的PHP編輯器工具,如EditPlus。
原代碼:
$pathinfo = $_SERVER['PATH_INFO'];
調換為:
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], UTF-8, GBK);
原代碼:
$req_uri = $_SERVER['REQUEST_URI'];
調換為:
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], UTF-8, GBK);
改正後保留,而後將保留好的classes.php文件上傳並遮蓋原文件即可,注意文件保留款式。
注:在本文復制代碼有可能會顯露出來漢字標點符號,請一統改成英文符號,免得出錯。
本文首發韋文成博客,原文地址:/wordpress/win2003-iis6-wordpress-rewrite/