Windows 2008 R2 + IIS 7.5 Rewrite組件重寫規則兼容方法(fǎ)
隨著越來越多雲(yún)主機或者VPS普及Windows 2008 或者Windows 2008 R2,IIS 7.0或IIS 7.5的時代(dài)就來到了。本文以Windows 2008 R2為例,講述如何把Windows 2003下(xià)IIS 6.0的Rewrite組件完美遷移到Windows 2008 R2當中。
Windows 2008 R2默認隻有64位的,但是內(nèi)置了支持32位的功能,就是說幾乎所有在32位下能正常運行的軟件都能(néng)正常運(yùn)行在Windows 2008 R2當(dāng)中,故(gù)不必擔心PHP 5.2.17這個(gè)版本支(zhī)持或不支持了。另外,有點需要注意的,Windows 2008 R2下,IIS版本是7.5,添加是在服務(wù)器管理麵板中的(de)“角色”,非“功能”哦,這點在剛接觸2008 R2會有找不到……
IIS7.0開始就變成模塊化了,需(xū)要什麽就安裝什麽,當然也包(bāo)括ASP支持,咱們用來運行PHP就把CGI也勾上。到時安裝PHP的時候,就不用安裝FastCGI了,因為已經內置(zhì)了,這是跟Windows 2003不同的。
直(zhí)奔(bēn)主題(tí)吧,我們在Windows 2003下使用Rewrite組件,一般都有對應的httpd.ini規(guī)則包,在Apache下,則對應有.htaccess規則包。網上有不少方法讓(ràng)我(wǒ)們使(shǐ)用IIS 7.5的ULR Rewrite模塊來進行導入原來的規則,導(dǎo)入的規則會在網站根目錄生成web.config文件,裏麵保存的是根據導入生成的新規則(zé),由於種種原因,導(dǎo)入的規(guī)則語(yǔ)法未必會100%能讓IIS 7.5這個(gè)重寫模塊識別,導致導入的規則運(yùn)行時(shí)候發生各種提示,包括無法生效,HTTP 500內部錯誤等等。
那有沒有辦法直接使用(yòng)原來Windows 2003的(de)偽(wěi)靜(jìng)態規則包呢(ne),答案是肯定的,Windows 2008 R2做(zuò)的兼容性更高,沒有Windows 2003莫名其妙的向上向下箭頭,權限是一次性配置到位的。
在Windows 2008 R2的IIS 7.5的站點麵板中,有個“ISAPI篩選器”模塊,這個(gè)就是(shì)Windows 2003加載Rewrite組件的地方(fāng),接下來,你應該明白(bái)怎樣加載了吧,同樣道理,在這裏把Rewrite.dll作為(wéi)運行文件,加載到ISAPI篩選器,拿KingCMS地方門戶v2.2舉例,ISAPI篩選器Rewrite.dll會自動(dòng)讀取旁邊的httpd.ini規則包。
一般而言,沒實操過(guò)的教程就到此(cǐ)結束(shù)了,但是在(zài)實際操作當中,這樣加載了Rewrite組件,還是無法生效。其實,原因也很明確(què),因為Windows 2008 R2是64位的,我們直接用(yòng)在Windows 2003的Rewrite組件是32位的,所以要(yào)找(zhǎo)到IIS 7.5加載的Rewrite組件如(rú)何在設置為32位兼容模式,經(jīng)過狂點式搜查,終於在應用池那裏找到了設置:
把(bǎ)啟(qǐ)用32位應用程序設置為 True,然後再試試看。偽靜態是不(bú)是生(shēng)效了。
關鍵詞:Windows 2008,IIS,Rewrite
閱讀本文(wén)後您有什麽感想? 已(yǐ)有(yǒu) 人(rén)給出評價!
- 1
- 1
- 1
- 1
- 1
- 1