IIS7.5使用web.config設(shè)置偽靜態(tài)的二種方法
近幾天公司里開(kāi)發(fā)的項(xiàng)目有幾個(gè)運(yùn)行在IIS7.5上,由于全站采用的是偽靜態(tài),因此從網(wǎng)上找到兩兩種方法來(lái)實(shí)現(xiàn)。這兩種方法各有優(yōu)勢(shì):第一種比較靈活,只要把文件拷到根目錄下,即可直接顯示所有偽靜態(tài)頁(yè)面(適用于此偽靜態(tài)規(guī)則的所有項(xiàng)目,如ThinkPHP),無(wú)需更改代碼;第二種適合有子目錄時(shí)的偽靜態(tài),比如一個(gè)網(wǎng)站下有多個(gè)子網(wǎng)站且都要使用偽靜態(tài),那么就考慮使用第二種方法了,第一種會(huì)報(bào)錯(cuò)誤。兩種方法,自己根據(jù)情況使用吧(當(dāng)然,并不是適用所有項(xiàng)目,可以根據(jù)項(xiàng)目的偽靜態(tài)規(guī)則自行調(diào)整)。以下是代碼:
第一種方法:web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
第二種方法:web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="規(guī)則 1" stopProcessing="true">
<match url="^includes/(.*)" />
<action type="Rewrite" url="includes\/{R:1}" />
</rule>
<rule name="規(guī)則 2" stopProcessing="true">
<match url="^(blog)/includes/(.*)" />
<action type="Rewrite" url="{R:1}/includes\/{R:2}" />
</rule>
<rule name="規(guī)則 3" stopProcessing="true">
<match url="^(blog)/(.*).html(.*)" />
<action type="Rewrite" url="{R:1}/index.php\/{R:2}.html{R:3}" />
</rule>
<rule name="規(guī)則 4" stopProcessing="true">
<match url="^(.*).html(.*)" />
<action type="Rewrite" url="index.php\/{R:1}.html{R:2}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
下面是補(bǔ)充:
IIS 7和IIS 7.5及以后的版本估計(jì)都會(huì)使用web.config來(lái)實(shí)現(xiàn)偽靜態(tài)規(guī)則,于是我們以前的偽靜態(tài)文件必須更改。網(wǎng)上找了一圈,還沒(méi)有發(fā)現(xiàn)比較全面的web.config偽靜態(tài)規(guī)則,于是我們這里整理一份,供初次使用的朋友參考。
實(shí)現(xiàn)普通頁(yè)面、帶一個(gè)數(shù)字參數(shù)頁(yè)面和帶兩個(gè)參數(shù)頁(yè)面的偽靜態(tài)!
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Index" stopProcessing="true"> <match url="^index.html" /> <action type="Rewrite" url="index.php" /> </rule> <rule name="Rule1" stopProcessing="true"> <match url="^news_([0-9]+).html" /> <action type="Rewrite" url="news.php?nid={R:1}" /> </rule> <rule name="Rule2" stopProcessing="true"> <match url="news_list_([0-9]+)_([0-9]+).html" /> <action type="Rewrite" url="news_list.php?nid={R:1}&page={R:2}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
IIS 7.5通過(guò)web.config實(shí)現(xiàn)301重定向的方法,將不帶www的域名轉(zhuǎn)向到帶www的域名上!
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^chuangluo.com$" /> </conditions> <action type="Redirect" url="http://www.chuangluo.com/{R:0}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
由于我們的網(wǎng)站使用了轉(zhuǎn)義字符,因此在實(shí)際使用的時(shí)候,大家不可以直接復(fù)制以上代碼。請(qǐng)復(fù)制粘貼到Dreamweaver等編輯器后,使用替換功能把雙引號(hào)全部替換為英文狀態(tài)下的雙引號(hào),然后再修改rule標(biāo)簽內(nèi)的內(nèi)容就可以了,跳轉(zhuǎn)的地方請(qǐng)更改為自己的網(wǎng)址即可。
需要注意的地方是以前httpd.ini和.htaccess支持網(wǎng)址中兩個(gè)參數(shù)用&符號(hào)鏈接,在web.config中是不支持的,需要將這個(gè)符號(hào)更改為&才能正常使用。由于我們目前只有一臺(tái)這種類型的服務(wù)器使用經(jīng)驗(yàn),有可能存在不足,如有更多更全面的資料,歡迎交流學(xué)習(xí)!
相關(guān)文章
IIS打開(kāi)提示MMC無(wú)法創(chuàng)建管理單元的解決方法
安裝完IIS后,是否發(fā)現(xiàn)管理工具中沒(méi)有Internet 信息服務(wù)這項(xiàng)? 沒(méi)有關(guān)系,可以去C:\WINDOWS\system32\inetsrv 中直接點(diǎn)擊IIS.msc直接啟動(dòng)2014-03-03提高IIS網(wǎng)站服務(wù)器效率的8個(gè)方法
以下是提高IIS 5.0網(wǎng)站效勞器的執(zhí)行效率的八種方法,一些常見(jiàn)的iis選項(xiàng)控制與效率的提升,推薦大家看下。2009-09-09Windows 2012/IIS8多網(wǎng)站用相同端口部署多張證書(SNI)
Windows Server 2012 中有一項(xiàng)新增的功能 —— 服務(wù)器名稱標(biāo)識(shí)符(SNI),這個(gè)功能可以簡(jiǎn)化管理并改善SSL的可擴(kuò)展能力。2018-03-03兩個(gè)IP實(shí)現(xiàn)IIS和Apache公用80端口的設(shè)置方法
在windows 2003 Server 中同時(shí)安裝Apache和IIS,兩者只能正常啟動(dòng)一個(gè),即Apache和IIS有沖突,原因在于IIS在默認(rèn)的情況下會(huì)占用所有IP的80端口2008-12-12IIS服務(wù)器下安裝配置XCache緩存器方法及XCache下載
使用這個(gè)加速器可以很大程度的降低CPU占用(但會(huì)造成更多的內(nèi)存占用),并使網(wǎng)頁(yè)執(zhí)行時(shí)間縮短。具體原理不介紹了,網(wǎng)上有很多2012-01-01IIS7.5下301重定向的設(shè)置方法(及偽靜態(tài)后301重定向出錯(cuò)案例)
301重定向,網(wǎng)絡(luò)上的知識(shí)已經(jīng)很多了,我在這第一次實(shí)踐過(guò)程中,出現(xiàn)了一個(gè)算是低級(jí)的錯(cuò)誤,但也比較典型,也許其它新手也會(huì)碰到,分享一下2013-08-08Windows Server 2019 如何配置基于本地的組策略
這篇文章主要介紹了如何配置基于本地的組策略,基于本地的組策略只作用于本計(jì)算機(jī)及其上的用戶,對(duì)其他計(jì)算機(jī)和用戶不生效,通過(guò)5個(gè)子任務(wù)實(shí)例來(lái)驗(yàn)證本地組策略設(shè)置對(duì)本地工作環(huán)境的影響2023-05-05