0

今日、UrlRewriter.netを自分のサイトに追加しましたが、SEOリンクを実際のページにリダイレクトしても問題なく機能します。問題は、古いリンクをサイトに保持し、ルールを使用してResolveUrl()にページにリンクを出力させる方法があるかどうかです。「古い」リンクは、検索ボットまたはユーザーのいずれにも表示されないようにする必要があります。

ページ内のリンクの例:

<a href="<%= ResolveUrl("~/Help.aspx") %>">Help</a>

web.configに次のような書き換えコードを追加しました。

<rewrite url="~/help" to="~/help.aspx" />
<rewrite url="~/help/(.+)" to="~/help.aspx?section=$1" />

まず、MVCのように余分な仕事をせずにリンクをレンダリングできると便利です。次善の策は、リライトリストに「他の方法」のルールを追加するだけの良い方法があるかどうかです。

これにより、デバッグ時にリダイレクトを簡単にオフ/オンにすることもできます。

4

1 に答える 1

0

Ok。代わりに、MVC ルーティングで使用されるルーティング手法を web.forms に実装しました。これにより、以下のコードを使用できるようになりました。

ASPX:

<%= Url.RouteUrl("article", new { name="my-name-for-artcile"}) %>

そして、次のようにすべてのルートを 1 か所に登録します。

routes.MapWebFormRoute("articles", "artiklar", "~/articles.aspx");

Phil HaackがWebform ルーティングについて作成したコードを使用しましたが、マスター ページで動作するように少し変更し、aspx 以外の URL を持つサーバーでスムーズに動作するようにいくつかの web.config 設定を追加しました。

http://blog.joakimfischer.se/post/2009/11/08/Web-Form-Routing.aspx

意図したとおりに動作するようになりましたが、必要な機能を得るために UrlRewriter.net の使用をやめました。

于 2009-11-11T18:10:48.243 に答える