2012-02-17 11 views
3

ユーザーフレンドリーな環境のために、ページ拡張を削除し、クエリ文字列を表示しないようにしたいと考えています。たとえば、http://www.example.com/news.aspx?id=123からはhttp://www.example.com/news/123になります。どうすれば入手できますか?ASP.NET URLクエリ文字列の書き換え

は、私が他の2つの質問を置くために、この質問の機会を利用したい:

  • URL書き換えを使用して、私は各ページのルールを指定する必要がありますか?
  • ASP.NETのURL書き換えには、.htaccessファイル、またはweb.configのルール設定の方が適していますか?

ありがとうございます。

答えて

1

この目的のためにASP.Net MVCで導入されたURLルーティングクラスを使用できます。これらのクラスは、.Net Webアプリケーションで使用でき、MVCリリースに限定されません。

"System.Web.Routing"名前空間を使用すると、ルートを次のようなルールとして定義できます。あなたはMVCと同じよう

routes.MapPageRoute(
     "News Category", // Route name 
     "News/{*ID}",  // Route URL 
     "~/News.aspx"  // Web page to handle route 
    ); 

あなたは同じ方法であなたのglobal.asaxのアプリケーション・スタートアップイベントでこれらの「ルート」を登録します。

http://www.domain.com/news/123は、http://www.domain.com/news.aspx?id=123と同じ方法でWebアプリケーションで解釈されます。

Here's a recent article on using the MVC routing namespace in a traditional aspx application.

0
  • URLの書き換えを使用して、私は各
    ページのルールを指定する必要がありますか?

んが、ほとんどのURL書き換えメカニズムは、ある特定のルールを使用してURLのを組み合わせるために使用する正規表現を可能にしません。 ASP.NETでURL書き換えのために使用することをお勧めし

  • から
    .htaccessファイルまたはweb.configファイル内のルールの設定?

IIS 7またはアップを使用して、あなたが見る、IISのURL書き換えモジュールを使用することができますhttp://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

IIS 6を使用するか、私はからモジュール書き換えURL好む下げる:http://www.urlrewriting.net/を他の人あなたがそこにあります使える。

+0

良い提案が、これらは、IISのバージョンや余分なモジュールに依存しています。 System.Web.Routing名前空間は、正にこの目的のために.Netフレームワーク内に正式に実装された名前空間です。 –

関連する問題