|
|
|
|
|
關(guān)于win2012(IIS8.5)偽靜態(tài)重寫無后綴URL的問題,困擾了我?guī)滋鞎r間,一直在百度找不到能真正解決問題的方法。最后,還是Google資源更優(yōu)質(zhì),它幫助我解決了這個在我看來就快要放棄的問題。
問題描述
偽靜態(tài)重寫無后綴URL,如:
http://m.gazebo2go.com/123
==>
http://m.gazebo2go.com/list.aspx?id=123
如果我們就上述偽靜態(tài)編寫規(guī)則,那么會提示:404 文件不存在。
網(wǎng)上有人提到添加應用程序映射、模塊等,很多人都轉(zhuǎn)了這篇文章,但是這種方法其實是不對的。
解決方法
安裝時注意版本,64位系統(tǒng)選64位的軟件,32位系統(tǒng)選32位的軟件。
1、安裝rewrite 2.0
安裝rewrite 2.0請參看下文。
2、安裝application request routing:
安裝 application request routing 請按下面IIS官網(wǎng)的網(wǎng)頁的指引操作。
https://www.iis.net/downloads/microsoft/application-request-routing
安裝了上面兩個軟件之后,我們就可以在IIS里添加重寫規(guī)則。
很多人更喜歡直接在Web.config添加重寫規(guī)則。
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.webServer>
<rewrite>
<rules>
<rule name="rule1">
<match url="^(.*)t/([0-9,a-z]*)" ignoreCase="false" />
<action type="Rewrite" url="{R:1}/list.asp?id={R:2}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
關(guān)于 IIS7+ 的偽靜態(tài),詳細介紹請看《實例介紹Web.config rewrite規(guī)則設置url重寫功能》。
要偽靜態(tài)重寫無后綴URL,你必須首先啟動 Application Request Routing (應用程序請求路由)。
注意,你要從 Internet Information Services (IIS)管理器 打開IIS,才能顯示 Application Request Routing 的圖標。在 計算機管理 里打開IIS,是看不到 Application Request Routing 的圖標的。
這樣,我們就可以編輯Web.config,添加偽靜態(tài)重寫無后綴URL規(guī)則了,如:
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.webServer>
<rewrite>
<rules>
<rule name="rule1">
<match url="^(.*)t/([0-9,a-z]*)" ignoreCase="false" />
<action type="Rewrite" url="{R:1}/list.asp?id={R:2}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
特別要注意的是,<rule>
節(jié)點里的name值不能重復,否則網(wǎng)站訪問報錯。更多注意事項請看《實例介紹Web.config rewrite規(guī)則設置url重寫功能》。
總結(jié)
本文介紹了win2012(IIS8.5)偽靜態(tài)重寫無后綴URL的方法,該方法對于 IIS7+ 都有效。
相關(guān)文章