我已經使用Server 2012 R2和IIS設置了一臺新服務器,並將應用程序發佈到新網站。當我在開發環境中運行應用程序時,它在URL中顯示.aspx文件擴展名,但是當我瀏覽IIS服務器上的發佈實例時,它將刪除.aspx擴展名。IIS中的URL中缺少.aspx 8
所以不知何故,它已經啓用了某種URL重寫 - 我怎麼改變這個,因爲我需要它與開發版本保持一致。我安裝了URL Rewrite擴展,以查看是否配置了任何規則,但沒有定義規則。
謝謝!
我已經使用Server 2012 R2和IIS設置了一臺新服務器,並將應用程序發佈到新網站。當我在開發環境中運行應用程序時,它在URL中顯示.aspx文件擴展名,但是當我瀏覽IIS服務器上的發佈實例時,它將刪除.aspx擴展名。IIS中的URL中缺少.aspx 8
所以不知何故,它已經啓用了某種URL重寫 - 我怎麼改變這個,因爲我需要它與開發版本保持一致。我安裝了URL Rewrite擴展,以查看是否配置了任何規則,但沒有定義規則。
謝謝!
對我們來說,這是一個問題,我們開發了一個菜單系統,通過根據當前頁面URL中的頁面名稱突出顯示適當的菜單項來顯示哪個頁面處於活動狀態。我們最終修改了代碼,只是尋找.contains(「pagename」)而不使用.aspx,而不是評估包括擴展名在內的整個頁面名稱。這工作正常,我們還沒有能夠找出究竟是什麼導致URL被重寫。以上所有答案都沒有幫助我確定這個問題。
所以你還有擴展名.aspx丟失?您驗證的解決方案是繞過的,但無法解決您在擴展程序未顯示時遇到的問題。 – krlzlx
你可以重寫規則(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>
希望,應該工作!
Hi @ Asif.Ali是否應該將.aspx添加回URL?我已將它添加到applciation的web.config中,但沒有看到任何區別。謝謝 – ebooyens
我在開發中創建某種Web項目時看到了這種行爲。所以它可能是安裝的干擾。我想你已經看過web.config的任何東西,但如果它不在那裏嘗試machine.config。 另外,看一下IIS本身,當你點擊根級別(網站上面的那個)時安裝的內容。
這發生在我們的生產服務器上,在開發服務器上它正常工作 - .aspx後綴在那裏,但不在生產服務器上。我無法在生產服務器上找到任何自定義安裝或配置,這是一個乾淨的安裝。 – ebooyens
也許你的發佈配置文件中有一個URL Rewrite,例如Web.Release.config,而不是在你的調試配置中? – krlzlx
@krlzlx不要感謝您的想法 – ebooyens