14

Tomcat 9 Web サーバーが運用されています。私たちが直面している問題は、Tomcat が次のように不正な URL を受け取った場合に、アプリケーションのカスタム エラー ページを表示することです。

http://URL/|

また

http://URL/[

次のように、Tomcat アプリケーション サーバーの web.xml にエラー ページ タグを追加しました。

<error-page>
   <error-code>400</error-code>
   <location>/error.html</location>
 </error-page>
 <error-page>
   <error-code>404</error-code>
   <location>/error.html</location>
 </error-page>

Tomcat の webapps ディレクトリのアプリケーション ROOT フォルダに error.html があります。

ユーザーが存在しない Web ページを要求しようとすると、上記の 404 エラー コードに正しく対応するエラー ページが表示されます。

実際の問題は、ユーザーがhttp://URL/|のような不正な形式の URL をブラウザに入力すると、Tomcat が error.html にリダイレクトできないことです。

Tomcat は、カスタム エラー ページではなく、デフォルトの 400 Bad Request エラー ページを表示しています。

4

4 に答える 4

6

以下は、他の人の時間を節約するためにhttps://stackoverflow.com/a/55702749/2532710に従うサンプル構成です。Hostタグ内のserver.xmlで:

  <Valve className="org.apache.catalina.valves.ErrorReportValve"
        errorCode.400="webapps/ROOT/error400.html"
        errorCode.0="webapps/ROOT/errorOthers.html"
        showReport="false"
        showServerInfo="false" />

静的html error400.html ... errorOthers.html を CATALINA_BASE の webapps/ROOT に配置します。

于 2020-03-01T00:24:42.003 に答える