我正在使用IIS7的URLRewrite功能在我的ASP.NET WebForms應用程序的URL中隱藏.aspx
擴展名。如何阻止使用IIS7的URLRewrite模塊直接訪問.aspx頁面?
我使用了以下配置:
<rule name="WebFormsToMVC" stopProcessing="true">
<match url="^(.*?)\.aspx\?*?.*$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}" />
</rule>`
我現在就可以瀏覽到:
http://www.mytest.com/contact
,這被改寫爲:
http://www.mytest.com/contact.aspx
這保留「pr etty「url在瀏覽器地址欄中。我還更新了網站上的所有鏈接以使用無擴展名的網址。
問題是,底層的.aspx
頁仍然可以直接訪問,我想要阻止這一點。
如果用戶瀏覽到http://www.mytest.com/contact.aspx
我希望它重定向/重寫爲http://www.mytest.com/contact
,或者至少返回一個「找不到頁面」。
更新:
我設法通過重定向所有.aspx
頁面到主目錄得到這個工作。這並不理想,因爲我寧願將它們發送到非.aspx
版本,但它現在就會完成。
<rule name="Block .aspx" stopProcessing="true">
<match url=".aspx" />
<action type="Redirect" url="/" />
</rule>`
如何重寫和重新導向網址,直接解決.aspx
網頁對我友好的URL格式?
謝謝,多數民衆贊成我正在尋找,我以爲我試過,但也許我的語法有點不對。 – 2011-04-01 11:38:20