2012-04-03 26 views
2

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

つまり、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でカスタムエラーページを表示する方法

ご意見やご感想をいただければ幸いです。

飼料

答えて

3

私が代わりに「/ _page /」のような別のページのカスタムエラーページとしてウェブルートインデックス自体を使用してこれを解決することになりました。

これはSSLリダイレクトを除いてすべて機能しましたが、これはプロジェクトを完了するのに十分な問題ではないと判断しました。

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

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

これを読んで、誰かを助けてくれることを願っています。

飼料

UPDATE - 2012年8月17日:

まあ、それは(骨の折れるが、最終的に実り)マイクロソフトのサポートコールを取ったが、私は最終的に根本的な問題

への答えを見つけました

初めてWebサーバーをセットアップしたとき、セキュリティ上の理由から「ディレクトリブラウズ」モジュールをインストールしませんでした。私はWebクライアントがファイル構造を見ることを望んでいませんでした。

まあ、ディレクトリブラウジングモジュールをインストールする必要があります(それが不合格の場合でも)IISは200OK以外のもので応答するようにし、空のhtmlページを生成する必要があります。

セキュリティのためにインストールされると、IISは403.14の禁止されたエラーで応答します。これは既にweb.configで正しくリダイレ​​クトされています。