0

UrlRewriterASP.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" />   
4

1 に答える 1

1

ASP.NET アプリケーションの URL がアプリケーションのルートに解決されていないように思えますが、相対リンクであるため、フォルダー構造が考慮されます。

ASP.NET Web フォームを使用している場合は、URL を出力するときに ResolveUrl("~/home.aspx") を呼び出すか、ハイパーリンクが runat=server であることを確認する必要があります。次に例を示します。

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

また:

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

これを解決するもう 1 つの方法は、HTML にベース参照を含めることです。これにより、ページ上のすべてのリンクが指定されたパスをルートにする必要があることがブラウザーに伝えられます。

<head>セクションでは:<base href='http://www.yourwebsite.com/' />

于 2011-04-30T12:58:50.980 に答える