質問

今日、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 のような追加のジョブなしでリンクがレンダリングされるのは素晴らしいことです。次善の方法は、書き換えリストに「その他の方法」のルールも追加するだけの良い方法があるかどうかです。

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

役に立ちましたか?

解決

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

ASPX:

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

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

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

コードを使用しました フィル・ハーク について作られた ウェブフォームルーティング ただし、マスター ページで動作するように小さな方法で変更し、非 aspx URL のサーバーでスムーズに動作するようにいくつかの web.config 設定も追加しました。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top