3

http://urlrewriter.net/を使用して、Web サイトの URL を書き換えています。たとえば、次のように書き直しています。

http://www.example.com/schedule.aspx?state=ca

http://www.example.com/california.aspx

メタタグを動的に追加するために(SEOの目的で)やろうとしていること:

<meta name="robots" content="noindex,follow" />

書き換えられていないページのみ。これは、両方の URL を機能させたいが、書き換えられた URL だけが検索エンジンによってインデックス付けされるようにするためです。

リクエストされたページのバージョンを確認するにはどうすればよいですか?

編集

以下の回答は、メタ タグを使用する代わりに 301 リダイレクトを提案しています。多分私はこれを行うでしょうが、根底にある質問への答えを知りたいです.ページが書き直されたかどうかはどうすればわかりますか?

4

5 に答える 5

2

chakritの答えに加えて、UrlRewriter.NETは元のURLをHttpContextのUrlRewriter.NET.RawUrlというキーに格納しているように見えます。したがって、次のようなことを試すことができます。

bool isPageRewritten = 
   !string.IsNullOrEmpty(HttpContext.Current.Items["UrlRewriter.NET.RawUrl"]);
于 2008-11-17T03:29:38.777 に答える
2

これを行う必要がある場合は、おそらく次のようなことができます。

<add header="X-WasRewritten" value="true" />

また、ビューでヘッダーを確認し、必要に応じて robots メタ タグを追加できます。

これはクライアントにも返されるので、非表示にしたい場合は CustomAction ( http://urlrewriter.net/index.php/support/reference/actions/custom-action ) を記述して、何らかの設定を行います。リクエストの状態値。

ただし、同じリソースに対して 2 つの URI を持つことはお勧めしません。1 つの表現を維持することをお勧めします。古いブックマークを無効にすることが心配な場合は、古いブックマークを新しいブックマークにリダイレクトするように設定できます。

于 2008-11-03T16:29:36.560 に答える
2

個人的には、書き換えられていないものから書き換えられたものに 301 リダイレクトし、ページの 1 つのコピーのみを使用します。ユーザーにとってはより簡単で、SEO の観点からは、コンテンツのコピーが 1 つあります。

于 2008-11-03T16:33:15.040 に答える
1

最も明白な方法は、ページで Request.Url オブジェクトを使用して、URL とクエリ文字列に関する情報を取得することです。例えば:

if (Path.GetFileName(Request.Url.FilePath) == "schedule.aspx")
   //Not rewritten
else
   //rewritten
于 2008-11-03T16:30:01.053 に答える
0

それがHttpContext.Current.Itemsの仕事だと思います。

「リダイレクト」をHttpContext.Current.Itemsに保存してから、ページで特定の付加価値を確認できます。

urlrewriter.netにフックを追加して、それを実行できると思います。

HttpContext.Current.Items["Redirected_From"] = currentUrlHere;

そして、あなたのウェブページで、あなたはそれをチェックすることができます:

if (!string.IsNullOrEmpty(HttpContext.Current.Items["Redirected_From"]))
    // the page's been redirected, do something!
else
    // no it's visited normally.

.NET 3.5 SP1のASP.NETルーティングフレームワークに任せてからずっと経ちましたが、urlrewriter.netIMOよりも優れています。

于 2008-11-08T14:52:31.670 に答える