IBM WebSphere (WAS) 7.0.0.19 を使用して Java ベースの Web アプリケーションをホストしています。拡張子 *.html を特定のサーブレットにマップして、ユーザーが指定した HTML をサーバー側でスクラブできるようにする必要がありました。ファイル。(サーバーはファイルを読み取り、追加情報を追加して、変更されたコンテンツをページを閲覧しているユーザーに透過的に提供します。)
残念ながら、これを行ったとき、ウェルカムファイルが機能しなくなりました。以前は、ディレクトリの URL を入力すると、サーバーは index.html を探して提供していました。今、私は 403 の禁止されたルール (「禁止 - ルールにより」) を取得しています。アクセス ログにはそれ以上何も表示されません。ディレクトリのインデックス作成がサーバーの規則によって禁止されていることだけが示されていますが、これは正しいことです。index.html のないディレクトリの目次を Web サーバーに作成させたくありませんが、index.html がある場合は、そのファイルを提供したいと考えています。
私の最初の考えは、サーブレットを介して index.html を提供しようとしていて、(URL に "index.html" がなかったため) サーブレットがファイルを見つけられなかったため、index.html がないと考えたということでした。ただし、いくつかのデバッグ コードを挿入したところ、単純にディレクトリ自体にアクセスしただけでは、サーブレット コードが実行されることはないと確信しています。
index.html がサーブレットを介して提供されるかどうかはあまり気にしません。この特定のファイルの場合、とにかくサーブレットは元のファイルを吐き出すだけです。index.html を何かで提供したいだけです。
これが私のweb.xmlの関連セクションです
<servlet-mapping>
<servlet-name>PageScrubber</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
サーブレット マッピングを追加する前は、index.htm と index.jsp は機能していませんでした。以前は index.html のみが機能していました。しかし、今ではどれも機能しません。
私は同じ web.xml を 2 つの Oracle 製品 (WebLogic (WLS) と Oracle Application Server (OAS)) で問題なく使用しました。
このスクラバー サーブレットを追加しただけで問題が発生したと確信しています。そのディレクティブを削除すると、ディレクトリのインデックス作成が再び機能し始めたからです。
拡張されたドキュメント ルートを使用すると、welcome-file-list が機能しないというメモが見つかりました。com.ibm.ws.webcontainer.EnablePartialURLtoExtendedDocumentRoot を true に設定しようとしましたが、何も変わらないようでした。
私はほとんどアイデアがありません。私のindex.htmlが見つからない理由について、誰か考えがありますか? 前もって感謝します!