1

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ます。転送は機能しているようですが、リクエストは更新されていません。これは私には意味がありません。

4

1 に答える 1