12

ASP.NET C# を使用しています。

StackOverflow.com に似た URL 書き換え手順を実装するにはどうすればよいですか?

http://stackoverflow.com/questions/358630/how-to-search-date-in-sql

また、URLの「358630」などの値の意味は?これは質問 ID (テーブルからデータを取得するために使用する基準) ですか? それが何であれ、私のアプリケーションでは、「ID」フィールドを使用してレコードを識別しています。このフィールドは、SQL テーブルの ID 列です。現在、私の URL は次のようになっています。

http://myweb.com/showdetails.aspx?id=9872

しかし、私はそれらが次のように表示されることを望みます:

http://myweb.com/showdetails/9872/my_question_title

または:

http://myweb.com/9872/my_question_title

または、ボットを検索するのに適した最善の方法が何であれ.

私のアプリケーションはGo Daddyの共有ホスティング サービスでホストされており、カスタマイズされた ASP.NET "HTTP モジュール" や URL 書き換え用のカスタマイズされた DLL がサーバー上で動作していないように感じます。私は多くのサンプルを試しましたが、まだ運がありません!

Stack Overflow が Go Daddy でホストされていることがわかりました (共有ホスティング?)。スタックオーバーフローの方法がうまくいくかもしれません。

4

5 に答える 5

12

SO はASP.NET MVCを使用しています。MVC URL 書き換えがどのように機能するかを詳細に読む必要がありますが、その要点は、URL の「質問」部分がコントローラー クラスの名前 (URL の「showdetails」にほぼ対応) であるということです。 number は、そのコントローラーのデフォルト アクションの ID パラメーターです (URL のパラメーター 'id' と同じです)。

于 2009-02-06T17:44:46.340 に答える
2

URLの「358630」などの値の意味を教えてください

これは (おそらく) データベース内の質問の ID です。MVC モデルでは

 myurl.com/questions/358630

に類似している

myurl.com/questions.aspx?id=358630

URL の末尾にある質問のタイトルは、実際にはアプリによって無視されています。通常、検索エンジンの最適化と人間の読みやすさを目的として「追加」されています。実際、URL でこの質問のタイトルを変更しても、ページは問題なく読み込まれます。

于 2009-02-06T18:53:38.523 に答える
2

System.Web.Routing が登場する前は、UrlRewriter.NETを使用するのが一般的でした。十分に機能しましたが、IIS を構成するときに噛まれる可能性があります。ASP.NET で新しいルーティング クラスを使用する簡単な方法があるかどうかはわかりません (つまり、ドロップして実行するか、コードをリファクタリングするか)。

于 2009-02-06T17:45:25.120 に答える
1

新しい System.Web.Routing dll は ASP.NET 3.5 SP1 の一部であり、ASP.NET 3.5に展開できるので、従来の ASP.NET WebForms サイトでその機能を使用できます。

おそらく、ルーティングされた URL に .aspx 拡張子を含める必要があるため、IIS 6 での MVC の使用に関するPhil Haack の投稿のコメントに注意してください。

http://www.mysite.com/controler.aspx/action/id

また、Questions Tagged SEOもご覧ください。

URL の末尾にある無視される質問名は「スラッグ」と呼ばれることが多く、URL にページ タイトルを含めるために SEO の目的で使用されます。

于 2009-02-06T22:46:29.350 に答える