HttpModule
の URL のハイフンをクリーンアップする を持っBeginRequest
ているので、 というスクリプト ファイルを作成できますが、MyFile.asp
のようなエンドポイントで呼び出すことができます/my-file.asp
。(はい、これはクラシック ASP であり、まだ .NET に移行されていません。)
コードは次のようになります。
'if not an asp file, skip it
If Not Request.Path.EndsWith(".asp") Then Return
'if the physical file exists, bail out, to let that file service the request
If ("~" & Request.RawUrl).ToServerFileObject.Exists Then Return
'if a dehyphenated version of the file exists
If ("~" & Request.RawUrl.RemoveHyphens).ToServerFileObject.Exists Then
'transfer to that file
application.Server.TransferRequest("~" & Request.RawUrl.RemoveHyphens, True)
Return
End If
これを実行して request を実行するとmyfile.asp
、コードはファイルがディスク上に存在することを認識して戻り、IIS はそれを使用して要求を処理します。私がリクエストしたとき、ファイルが存在しないことを確認し、ディスク上に存在することを確認して転送することmy-file.asp
を期待していました。myfile.asp
しかし、代わりに、このハンドラーが何度も呼び出され続け、そのたびにRequest.RawUrl
が に設定されmy-file.asp
ます。転送は機能しているようですが、リクエストは更新されていません。これは私には意味がありません。