質問: ■Visual Studio 2010 現在下記のようなURLリクエストをウェブブラウザから投げ、プログラムが引数を取得し、DBを更新するといったものを作っております。 http://[ホスト名]/Sample/{第1引数}/{第2引数}/{第3引数} しかし http://[ホスト名]/Sample/{第1引数}/{第2引数}/{第3引数}// http://[ホスト名]/Sample/// などで不正なリクエストを投げられるとエラーが起きてしまいますし、かといって UriTemplate=""にいちいち書くとキリがないです。 http://[ホスト名]/Sample/{第1引数}/{第2引数}/{第3引数} この形以外のリクエストを拒否するように設定するにはどうすればよいのでしょうか。 ◆不正なリクエストを投げた場合 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/840109fb72480077ce34bb23395b54b3.png) ◆不正なリクエストを受け取った場合の、正常な動作(イメージ) UriTemplateに合致する不正なURLの場合400番を返しているだけです。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/5a1091939be063d1f734a87e6efb2e72.png)
回答: > > http://[ホスト名]/Sample/{第1引数}/{第2引数}/{第3引数} > > この形以外のリクエストを拒否するように設定するにはどうすればよいのでしょうか。 > > > 本番環境では IIS でホストするのですよね? であれば、IIS7 以降で使える URL Rewrite Module 2.0 を試してみてはいかがですか? (ASP.NET 開発サーバーでは使えません) 要求された URL が正規表現のパターン Sample/(.*)/(.*)/(.*) にマッチしない場合は CustomResponse action で Status code 400 を返すという設定は可能です。詳しくは以下の記事を見てください。 URL Rewrite Module Configuration Reference https://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference URL Rewrite Module 2.0 はダウンロードしてインストールする必要がありますので注意してください。