UrlRewriterを使用してリダイレクトを実行するルールを作成しました。
<rewriter>
<redirect url="~/ResetClock.ashx" to="~/ResetClock" />
</rewriter>
301 Moved Permanantly
問題は、リダイレクトを発行していることです。
POST /ResetClock.asp HTTP/1.1
HTTP/1.1 301 Moved Permanently
Location: /ResetClock
リダイレクトを「一時的な」リダイレクトとしてマークできます。
<rewriter>
<redirect url="~/ResetClock.ashx" to="~/ResetClock" permanent="false" />
</rewriter>
その場合、302 Found
リダイレクトが誤って発行されます。
POST /ResetClock.asp HTTP/1.1
HTTP/1.1 302 Found
Location: /ResetClock
問題は、これらのリダイレクトの両方が間違ったリダイレクトであるということです。次を発行するには UrlRewriter が必要です。
307 Temporary Redirect
どうやってやるの?
注: を発行するために必要な307
理由は、307
(および303
) が発明された理由です。すべてのブラウザーが302
正しく処理されません。をに変換POST
しGET
ます。別の場所に投稿する必要があることを User-Agent に伝える必要があります。
POST /ResetClock.ashx HTTP/1.1
HTTP/1.1 307 Temporary Redirect
Location: /ResetClock
クライアントは正しい場所へのリダイレクトを発行します。