我試圖與URL rewrites一起玩,並且無法使其工作。使用網址重寫
我有一個網址,
http://localhost/CToastWebsite/Rooms.aspx
並且想把它寫成http://localhost/CToastWebsite/Rooms
而且我還有一個URL,
http://localhost/CToastWebsite/Rooms.aspx?type=CreateRoom
,並希望把它寫http://localhost/CToastWebsite/Rooms/CreateRoom
。
我該怎麼做呢?
我試過了,即使我使用/styles/styles.css
和URL http://localhost/CToastWebsite/Rooms.aspx/CreateRooms
,我的CSS和圖像也無法正常工作。這是使用這樣的URL的正確方法嗎?
我被卡住了,我搜索了文章,但是我找不到任何容易跟隨並獲取CSS和圖片的工作。
編輯
我已經設置了urlrewritingnet.net
,但我有問題。我定了一個規矩,如:
<urlrewritingnet xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
<rewrites>
<add name="Rewrite" virtualUrl="^~/Rooms"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Rooms.aspx"
ignoreCase="true" />
</rewrites>
</urlrewritingnet>
所以我想/rooms.aspx
更改爲/rooms
,但頁面持續顯示/rooms.aspx
。
會話狀態的錯誤現在當enableSessionState設置爲true,在配置文件或Page指令只能用
會話狀態。請確保System.Web.SessionStateModule或自定義會話狀態模塊包含在應用程序配置的\\部分中。
我已經添加在web.config
文件標籤中<的System.Web>:
<sessionState mode="InProc" timeout="20" cookieless="UseCookies" />
。我將在頁面指令EnableSessionState="true"
。
解決方案
我跟着堆棧溢出問題Error using session in IIS 7再次發出會話狀態的工作。
要誠實;我使用這個:http://www.urlrewriting.net/149/en/home.html - 它是免費的,它的工作原理。就我個人而言,我的重寫URL中沒有文件擴展名。 SO上也有很多例子。你也可以使用類似http://www.blunck.info/iehttpheaders.html的東西來查看你的請求在IE中的位置,並且其他瀏覽器也有很多類似的工具欄。 – dash
您還需要配置http模塊部分的擴展名 - 您是否已經完成了這項工作?請參閱指南的第8頁。此外,它不會自動重定向;相反,您將URL更改爲http://www.mysite.com/rooms,URL重寫器將其映射到Rooms.aspx上,因此沒有人看到該頁面本身。 – dash
還要注意,根據您在IIS中託管您的網站的方式,/ styles /將來自根目錄,而不是來自虛擬目錄(即您可能需要/CToastWebsite/Styles/style.css)。我更喜歡使用主題文件夾作爲.Net將解決它的位置。雖然你必須小心你的路徑圖像等。 – dash