1

こんにちは、タイトルが示すように、この種の書き換えをできるだけ簡単に行うにはどうすればよいですか? それはhttphandlersまたはおそらくasp.netルーティングですか?バージョンasp.net 3.5を使用しています。

問題は、.aspx ファイル、画像、フォルダーなどへの要求など、他の要求を無視することです。

これらを処理したい:

site.com/john => site.com/profile.aspx?nick=john

site.com/mark => site.com/profile.aspx?nick=mark

site.com/fred => /site.com/profile.aspx?nick=fred

私はこれらを処理したくない:

site.com/page.aspx

site.com/images/logo.jpg

あなたの提案は大歓迎です:)

4

3 に答える 3

1

Scott Guthrie はこれについて素晴らしい記事を書いています。IIS7 を実行している場合は、URL 書き換えモジュールを使用すると非常に簡単です。

于 2009-07-28T21:26:46.397 に答える
0

これ

Request.Url.ToString()

URLを取得します(これを見つけたページが正しい場合、私はasp.netをあまり使用しません)

この URL で何らかの正規表現を使用できます。

site\.com/([\w])+$

.net で正規表現のキャプチャ部分を読み取る方法がわからない場合は、適切なオブジェクトが必要です。

次に、ユーザーにリダイレクトを送信します。適切な Redirect-HTTP-Header を使用してこれを実行できるはずです。私が正しければ、Response-Object に同様の名前のコレクションがあります。

この実装では書き換えが許可されていないことに注意してください

site.com/john/some_other_param

これを詳細に実装する方法について質問がある場合は、さらに調査します

よろしく

于 2009-07-28T21:20:35.100 に答える
0

これを行うために、過去に UrlRewriter.net を使用しました。それは本当にうまくいきます。URL にマップする既存のファイル (つまり、実際の aspx ページまたは画像ファイル) がない場合にのみ、書き換えルールを適用するように構成できます。

http://www.urlrewriting.net

もちろん、IIS7 を使用している場合は、これを行うためのルーティングが組み込まれています。

于 2009-07-28T21:29:52.647 に答える