2

サイトの古いビルドからレガシー URL をリダイレクトするカスタム HttpModule があります。これは、着信要求 URL をリダイレクトのデータベース テーブルと照合します。

ただし、着信要求 URL にプラス (+) 記号が含まれている場合、要求は HttpModule を通過しません。標準 URL では期待どおりに機能します。

たとえば、次の URL が機能します。

http://www.example.com/sample-url
http://www.example.com/sample url
http://www.example.com/sample%20url

これらはしません:

http://www.example.com/sample+url
http://www.example.com/sample%2Burl

これが私のモジュール宣言です:

<add name="LegacyUrlHttpModule" type="Web.LegacyUrlHttpModule, Framework.Web" preCondition="managedHandler" />

ここに設定がありませんか?

4

3 に答える 3

4

Scott Hanselmann はnice blog post、URL のパス部分であらゆる種類のがらくた記号を有効にする方法を説明した記事を書きました。

彼の結論は次のとおりです。

リクエスト パスでクレイジーなものを取得するためのすべての努力の後、単純に値をクエリ文字列の一部として保持する方が簡単で、クリーンで、より柔軟で、より柔軟であることに言及する価値があります (この投稿の最初の WAY を覚えていますか?)。安全。

したがって、基本的に、URL にそのような文字が含まれている場合、これらの文字はパス部分で渡すのではなく、クエリ文字列パラメーターとして渡す必要があります。

于 2013-08-27T16:08:49.610 に答える