URLの書き換えとリダイレクトについて私が理解していることは(私の間違った仮定を指摘してください)
url の「リダイレクト」オプションを使用し
http://localhost/Search/VehicleDetails.aspx?id=2
て変換することによりhttp://localhost/Search/2/VehicleDetails.aspx
、クライアントが参照http://localhost/Search/VehicleDetails.aspx?id=2
し、リダイレクト ルールが に変更されるhttp://localhost/Search/2/VehicleDetails.aspx
と、サーバーはフォルダー内の VehicleDetails.aspx ページを見つけようとし/Search/2
ます。しかし、url の「rewrite」オプションを使用し
http://localhost/Search/VehicleDetails.aspx?id=2
て変換することによりhttp://localhost/Search/2/VehicleDetails.aspx
、クライアント ブラウズ時http://localhost/Search/VehicleDetails.aspx?id=2
にクライアント ブラウザが表示されますhttp://localhost/Search/2/VehicleDetails.aspx
が、内部的にサーバー要求は、/Search/2 ディレクトリの VehicleDetails.aspx ではなく、Search ディレクトリの VehicleDetails.aspx ページで行われます。 ..
そして私の問題は、次のルールでURLを書き直そうとしたことです
<rewrite>
<rules>
<rule name="Search" stopProcessing="true">
<match url="^.*(?:Search/VehicleDetails.aspx).*$" />
<conditions>
<add input="{QUERY_STRING}" pattern="id=(\d+)" />
</conditions>
<action type="Rewrite" url="/Search/{C:1}/VehicleDetails.aspx" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
.I /Search/2/VehicleDetails.aspx
want HTTP 404.(The resource cannot be found.)
that client browser shows http://localhost/Search/2/VehicleDetails.aspx
but request is made on /Search/VehicleDetails.aspx
..
また、次のようなURLのID(この例では2)の値を取得するにはどうすればよいですか
http://localhost/Search/2/VehicleDetails.aspx
Request.QueryString["id"]??