既存の Web サイトを IIS6 から IIS7 に移行していますが、404 エラー ページの設定で問題が発生しています。404 エラーページは次のように機能します。
- カスタム ASP ページは、「特別な」URL の短いリスト (例: http://example.com/limited-offers ) に対して URL をチェックします。
- URL がわかっている場合は、そのページの実際の URL にリダイレクトされます。
- それ以外の場合、訪問者は 404 ステータス コードの静的なエラー ページにリダイレクトされます。
IIS6 ではこれは宣伝どおりに機能しましたが、IIS7 ではいくつかの点が変更されました。IIS7 は、エラーページが定義されているステータスコードを検出すると、常に構成されたエラーページを表示します。404 ステータス コードの静的なエラー ページの場合、これは IIS7 がカスタム ASP ページを再度実行することを意味します。これにより、無限のリダイレクトが発生します。
この動作は、Web.Config に設定を追加することで回避できることがわかりました。
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
ただし、これを追加した後、カスタム ASP ページはリダイレクトを拒否します。Fiddler で確認したところ、IIS7 は 404 ステータス コードを強制し、302 リダイレクトを上書きしているようです。
私たちの問題を解決するための別のアプローチを誰かが推奨できますか?