2009-06-12 9 views
1

ここでは、インターネット上でこの件について多くのことを知っています。だから、彼らは大丈夫だが、私は何か他のものを必要とするIIS6で既存のASP .NET 3.5 Webアプリケーションに優しいSEOを実現する方法

www.site.com/Products/Books 

にそれを書き換える

www.site.com/products.aspx?category=Books 

:しかし、ほとんどの記事/質問は次のように「静的」URL書き換えを指します。

このサイトはCMSのようなもので、さまざまな種類のコンテンツを持っています。

「StackOverflowがあなたの開発にどのように役立つか」というタイトルの記事を読むには、以下のようなURLにアクセスする必要があります。

www.site.com/viewContent.aspx?Id=1234 

私がachiveたいのです。だから私は最初に私が記事(もちろん、そのタイトルを取得する必要があるため、私は、その中にASP .NETを関与させる必要があります理解し

www.site.com/Content/Articles/how-to-stackoverflow-helps-you-in-your-development 

)、URLを書き換えます。

しかし、私はので、多分、私は

のようなものを受け入れることができる ...私はそのURLに行けば地獄ASP .NETはその記事を取得する方法を知っているだろうか、それはどこでもIDが含まれていません思ったんだけど
www.site.com/Content/Articles/1234/how-to-stackoverflow-helps-you-in-your-development 

私は本当にここで失われています。URLを書き換えたことは一度もありません。私はたくさんのグーグルグーグルをしています。私は自分が望むことをする方法を見つけることができません。たぶん私が欲しいものはURL書き換えと呼ばれていませんか?私は知らない...

サイトはWindows 2003 Server、IIS6、ASP .NET 3.5 SP1で実行されています もちろん、私は無料のソリューションが必要です、ISUSI MODで100USDを使うことはできませんそれが私が必要とすることをするかどうかは分かりません)。

これは重複した質問ですが、申し訳ありませんが、私はそれを見つけることができませんでした。

EDIT:非asp.NETファイル(jpgs、gifsなど)を書き換える必要はありません。コンテンツのタイトルをURLに含めるには、viewContentページを書き直すだけです。その

はこの1つは無料であるMVC

答えて

5

ASP.Net 3.5 sp1に付属の新しいRoutingを使用すると、クリーンURLを使用できます。

これは、MVCだけでなくWebフォームでも行うことができます。 (私はそれを自分でやった)。設定方法の詳細については、herehereを参照してください。

URLに記事のIDとタイトルを投げて、IDを記事の検索に使用される実際のパラメータにすることができます。それがSOのことです。 URLの質問を削除すると、同じ場所に移動します。

IDを使用しない場合でも、記事のタイトルを「あなたの開発に役立ちます」というタイトルをDBに渡して、タイトルに基づいて記事を検索することができます。

IIS 6に関しては、デフォルトでIIS 6が拡張機能のないURLを処理できないため、少し厄介です。

は、いくつかの回避策があります。

  1. があなたのURLの末尾にAsp.Net
  2. 入れDefault.aspxのにすべての要求をマップするためにIISでのワイルドカードマッピングを使用し

他の解決策についてはpostを参照してください。

小規模なサイトで、サイトのすべてのコンテンツがAsp.Net(画像、CSS、.htmlなど)を通過する場合、最初の解決策ではパフォーマンス上の問題が発生する可能性がありますが、問題ではありません。私はこのアプローチを使用しており、大きなパフォーマンス上の問題はありませんでした。私はそれが最も簡単な解決策だと思う。ここにはwebsiteがあります。

私はこれが役に立ちそうです。

+0

私はあなたのアプローチのために行くつもりです。だから私は.NETを使って書き直しているでしょうか?私はIISのアドオンやフィルターは必要ありませんか? タイトルは一意の列ではないため、同じタイトルのコンテンツオブジェクトが複数存在する可能性があるので、私はURLにidを含めます。 ありがとう、私はそれを試してみよう! あなたのために投票=) – emzero

+0

私はIIS 6回避策を追加しました。 – orandov

+0

ありがとうございますが、私はそれで運がないです。私はすべてのあなたのリンクを読んだが、私はそれを動作させることはできません。私はそれが本当にどのように動作するか完全に理解していません。あなたが書いた最初のリンクの手順に従ってきましたが、動作させることはできません。 私はRoute、RouteHandlerなどすべてを設定しました。しかし、質問...新しい "仮想" URLを指すように私のサイトのすべてのリンクを書き直す必要がありますか? URLを書き換えるためにviewContent.aspxページにコードを追加する方法はありませんか?しかし、私は人々がそのURLをコピーするときに私は別の方法の周りが必要だと思う...私は本当に失われています。いつ私はコンテンツのタイトルを取得し、URLに入れますか? – emzero

-1

ASP.net MVCはあなたの友人である、私はそれを使用しているし、それはかなりうまく機能:http://www.codeplex.com/IIRF

いいことは、それがURLのを処理するということです拡張子なし(例:.aspx、.htmlなど)

+0

このサイトは、純粋なASPで最初に作成された後、ASP .NET 1.1、次に2.0、3.5に移行されました。それは大きなサイトですが、私はMVCを使ってSEOのフレンドリーなURLを含めるだけでサイト全体を再作成することはできません。 – emzero

+0

mvcとwebformを混在させることができます – Fredou

+0

本当に??どうやって?私はいくつかのASP .NET MVCチュートリアルを読んだり見たことがあります。それらはすべて「新しいプロジェクト - > ASP .NET MVCプロジェクト」から始まります。 – emzero

2

を使用するStackOverflowのため

0

最も簡単な方法は、現在のWebフォームプロジェクトにhttpモジュールを追加することです。

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

これはあなたにそれの基本を示し、しかし、あなたはREWITEしたいページがデータベースから取得した、あるいはその場で構築されているように、容易に拡張することができます。

+0

Ye私はそれが最善の方法だと思う。もう一度、私の "古い" URLがまだ利用可能かどうか(私はviewContent.aspx?Id = 1234を意味する)を尋ねる必要があります。そして、それらの古いURLを入力すると、ページはコンテンツタイトルを含むように書き換えます。そして、私は "rewritten" url(もちろんIDを含む)からIDを取得し、通常のようにdbからアーティクルをロードします。 – emzero

+0

私はリライターを使用しているので、古いURLは引き続き動作し、ページを表示します。しかし、あなたがバックリンクを持っている場合は、「古い」URLをチェックして新しいSEOにリダイレクトする何かを追加するか、Google Spirdersが2つの異なるURLに同じページコンテンツを見つけられる可能性があります。かなり悪い。 – TheAlbear

1

ASP.NETルーティングでこれを実現することができます。これはASP.NET MVCとWebformsで行うことができます。IISで何もする必要はありません。

チェック下のリンク

http://www.4guysfromrolla.com/articles/051309-1.aspx#postadlink

Iやったtoo.Itます。彼らは、サンプルコードを提供学ぶための非常にシンプル上記link.Itsから詳細を1時間以内に私のWebアプリケーションでのURLルーティング

タイトルを使用してコンテンツのIDを取得できます。ただし、タイトルは一意である必要があります。ユーザーがテキストボックスからマウスを離したときにタイトルが既に存在するかどうかを確認するには、ajaxを使用できます。

+0

ありがとうございますが、タイトルは一意ではありません。私が望むのは、古いURLを失うことなく、URLを書き換える単なる方法です。これまでのところ、これはASP.NETルーティングを使用することはできません。 私は...両方とも持っていたいと思っています:www.site.com/Content/Articles/1234/how-to-stackoverflow-helps-you-in-your-developmentとwww.site.com/viewContent.aspx? Id = 1234。それが不可能な場合は、サイトのすべてのリンクを書き直す必要があり、人々はすでにいくつかのお気に入りを選択している可能性があります。これはオプションではありません。私は明確ですか? = P ありがとうございました! – emzero

関連する問題