2

IIS 7.5 を使用して、静的ファイルが見つからない場合にデータベースのコンテンツを表示するカスタム 404 (および 403.14) エラー ページを作成しました。

つまり、http://mysite.com/test/を参照し、その場所に物理インデックスまたは既定のファイルが見つからない場合、IIS は 404 カスタム エラー ページを実行して URL を解析し、保存されているページを表示します。データベース、またはページが見つからないという通知。

IIS が Web ルート インデックス/デフォルト ページの 404 ページを表示しないことを除いて、すべてが完全に機能しています。

Web ルート ディレクトリにファイルはありません。これが私の観測結果です。

  • mysite.com: 完全に空白のページ
  • mysite.com/: 完全に空白のページ
  • mysite.com/index.aspx: カスタム エラー ページが正しく表示されます。
  • mysite.com/default.aspx: カスタム エラー ページが正しく表示されます。
  • mysite.com/index.htm: カスタム エラー ページが正しく表示されます。
  • mysite.com/anything_else/: カスタム エラー ページを正しく表示します。

私の Web.config ファイルには次のものが含まれています。

<httpErrors errorMode="Custom" existingResponse="Replace">
    <remove statusCode="404" subStatusCode="-1" />
    <error statusCode="404" prefixLanguageFilePath="" path="/_page/" responseMode="ExecuteURL" />
    <error statusCode="403" subStatusCode="14" path="/_page/" responseMode="ExecuteURL" />
</httpErrors>

サイトの他の動的ページと同様に、ホームページのコンテンツをデータベースに保存したいと考えていますが、多くの検索を行っても、ホーム インデックス/デフォルト ページが見つからない場合に IIS にカスタム エラー ページを表示させる方法を見つけることができません。 .

どんな助け/考えも大歓迎です。

飼料

4

1 に答える 1

3

「/_page/」のような別のページではなく、Web ルート インデックス自体をカスタム エラー ページとして使用することで、これを解決しました。

これは、プロジェクトを遅らせるほど大きな問題ではないと判断した SSL リダイレクトを除くすべてで機能しました。

システムでは、すべてのページが明示的に http または https に設定されています。ユーザーが http アドレスを使用して https ページに移動すると、https バージョンにリダイレクトされ、その逆も同様です。ただし、ルート インデックスをカスタム エラー ページとして使用すると、IIS は何らかの理由でページをそれ自体にリダイレクトしないため、このリダイレクトがホームページに対して機能しないことを意味します。

誰かがその問題を回避する方法を知っているなら、私はあなたの考えを大いに感謝します. しかし、元の質問は本質的に解決されています。

これを読んで誰かの役に立てば幸いです。

飼料

更新 - 2012 年 8 月 17 日:

まあ、それはマイクロソフトへのサポートコールが必要でしたが(骨の折れるが、最終的には実りがありました)、根本的な問題に対する答えを最終的に見つけました

最初に Web サーバーをセットアップしたとき、セキュリティ上の理由から「Directory Browsing」モジュールをインストールしませんでした。Web クライアントがファイル構造を参照できるようにしたくありませんでした。

IIS が 200OK 以外の応答を返すようにする (そして空白の html ページを生成する) には、Directory Browsing モジュールをインストールする必要があります (無効の場合でも)。

インストールすると (セキュリティ上の理由から無効のままにしておくと)、IIS は 403.14 Forbidden エラーで応答するようになりました。

于 2012-04-25T21:52:41.197 に答える