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