2017-10-10 50 views
4

我已經使用Server 2012 R2和IIS設置了一臺新服務器,並將應用程序發佈到新網站。當我在開發環境中運行應用程序時,它在URL中顯示.aspx文件擴展名,但是當我瀏覽IIS服務器上的發佈實例時,它將刪除.aspx擴展名。IIS中的URL中缺少.aspx 8

所以不知何故,它已經啓用了某種URL重寫 - 我怎麼改變這個,因爲我需要它與開發版本保持一致。我安裝了URL Rewrite擴展,以查看是否配置了任何規則,但沒有定義規則。

謝謝!

+0

也許你的發佈配置文件中有一個URL Rewrite,例如Web.Release.config,而不是在你的調試配置中? – krlzlx

+0

@krlzlx不要感謝您的想法 – ebooyens

回答

0

對我們來說,這是一個問題,我們開發了一個菜單系統,通過根據當前頁面URL中的頁面名稱突出顯示適當的菜單項來顯示哪個頁面處於活動狀態。我們最終修改了代碼,只是尋找.contains(「pagename」)而不使用.aspx,而不是評估包括擴展名在內的整個頁面名稱。這工作正常,我們還沒有能夠找出究竟是什麼導致URL被重寫。以上所有答案都沒有幫助我確定這個問題。

+0

所以你還有擴展名.aspx丟失?您驗證的解決方案是繞過的,但無法解決您在擴展程序未顯示時遇到的問題。 – krlzlx

0

你可以重寫規則(examplePage.aspx)這樣的配置你的web.config文件:

<?xml version="1.0"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="examplePage.aspx Redirect" stopProcessing="true"> 
        <match url="^(.*\/)*examplePage\.aspx$" /> 
        <conditions logicalGrouping="MatchAll"> 
         <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" /> 
        </conditions> 
        <action type="Redirect" url="{R:1}" redirectType="Permanent"/> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

希望,應該工作!

+0

Hi @ Asif.Ali是否應該將.aspx添加回URL?我已將它添加到applciation的web.config中,但沒有看到任何區別。謝謝 – ebooyens

0

我在開發中創建某種Web項目時看到了這種行爲。所以它可能是安裝的干擾。我想你已經看過web.config的任何東西,但如果它不在那裏嘗試machine.config。 另外,看一下IIS本身,當你點擊根級別(網站上面的那個)時安裝的內容。

+0

這發生在我們的生產服務器上,在開發服務器上它正常工作 - .aspx後綴在那裏,但不在生產服務器上。我無法在生產服務器上找到任何自定義安裝或配置,這是一個乾淨的安裝。 – ebooyens