2011-04-30 52 views
0

我正在使用UrlRewriter在ASP.NET應用程序中重寫我的URL。一切工作正常,我需要做的工作是確定。在訪問ASP.NET中的任何重寫鏈接後,URL重寫使所有相同模式的鏈接

我想~/product/45/something重定向到~/show_product_details.aspx?current_prod=45

和它的正常工作。但問題是當我要求~/product/45/something時,我從~/show_product_details.aspx?current_prod=45獲得頁面。之後,當我點擊一些鏈接,如~/home.aspx,它再次將我重定向到~/product/45/home.aspx

請建議如何解決這個問題。我使用這個規則:

  <add name="Gallery1" virtualUrl="^~/product/(.*)/(.*)" 
       rewriteUrlParameter="ExcludeFromClientQueryString" 
       destinationUrl="~/show_product_details.aspx?current_prod=$1" 
     ignoreCase="true" /> 

回答

1

這聽起來像在ASP.NET應用程序的URL都沒有解決到應用程序的根目錄的,而是相對的鏈接,導致文件夾結構,需要考慮。

如果您正在使用ASP.NET Web窗體,你需要確保你要麼調用RESOLVEURL(「〜/ home.aspx」)輸出的URL時,或確保該超鏈接是RUNAT =服務器,例如:

<a runat="server" href="~/home.aspx">Home</a> 

OR:

<a href='<%# ResolveUrl("~/home.aspx") %>'>Home</a> 

就可以解決這個另一種方法是在你的HTML,它告訴頁面上的所有鏈接都必須在指定的路徑爲根的瀏覽器有一個基本參考:

<head>部分:<base href='http://www.yourwebsite.com/' />

+0

達夫曼先生的訣竅工作我添加了runat =「服務器」,並將路徑從home.aspx更改爲〜/ home.aspx。 PLZ幫助我在另一個問題。我正在使用燈箱套件在模式幻燈片中顯示我的圖像與該燈箱套件的幫助。我這樣做會在每個標記中添加REL =燈箱。問題是在urlrewriting模式之前工作,但重寫後的url模式無法正常工作,我的意思是燈箱不working.plz幫助 – 2011-04-30 13:41:46

+0

您是否收到JavaScript錯誤?您的JS文件是否正確下載?也許JavaScript正在被你的重寫規則捕獲。我以前沒有使用燈箱。 – 2011-04-30 13:50:15

+0

是的先生我得到一個JavaScript錯誤和js文件沒有被下載.how,以防止js文件,以防止陷入重寫rule.i實施了一個停止處理規則爲js files.still不工作 – 2011-05-01 06:51:47