2011-12-11 124 views
-2

我試圖與URL rewrites一起玩,並且無法使其工作。使用網址重寫

  1. 我有一個網址,http://localhost/CToastWebsite/Rooms.aspx並且想把它寫成http://localhost/CToastWebsite/Rooms

  2. 而且我還有一個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再次發出會話狀態的工作。

+0

要誠實;我使用這個:http://www.urlrewriting.net/149/en/home.html - 它是免費的,它的工作原理。就我個人而言,我的重寫URL中沒有文件擴展名。 SO上也有很多例子。你也可以使用類似http://www.blunck.info/iehttpheaders.html的東西來查看你的請求在IE中的位置,並且其他瀏覽器也有很多類似的工具欄。 – dash

+0

您還需要配置http模塊部分的擴展名 - 您是否已經完成了這項工作?請參閱指南的第8頁。此外,它不會自動重定向;相反,您將URL更改爲http://www.mysite.com/rooms,URL重寫器將其映射到Rooms.aspx上,因此沒有人看到該頁面本身。 – dash

+0

還要注意,根據您在IIS中託管您的網站的方式,/ styles /將來自根目錄,而不是來自虛擬目錄(即您可能需要/CToastWebsite/Styles/style.css)。我更喜歡使用主題文件夾作爲.Net將解決它的位置。雖然你必須小心你的路徑圖像等。 – dash

回答

0

我個人不會使用具有整個頁面名稱及其擴展名的URL--雖然這使得問題很容易解決(因爲我假設您仍在請求原始頁面),但是,在我的意見,打破了URL重寫的觀點。

.NET有大量的URL重寫實現,它們很容易配置和使用。

我用URL Rewriting.Net

可以使用的工具,看看您的要求會。一個受歡迎的互聯網  Explorer是IE HTTP Headers - 這對於查看瀏覽器在哪裏重定向也很有用。這應該可以幫助您確定您的CSS和圖像的請求的位置。

斯科特Hanselman的也有post about how to do this in IIS 7

堆棧上還有大量示例 溢出 - 請看相關的鏈接,右下角爲示例。

你也可能要張貼的如何,此刻正在做你重寫,如果你想找出什麼錯誤代碼的例子。

+0

感謝您的答覆,我設置了utlrewritenet,但我有問題。我編輯了這個問題 – redoc01