0

Ubuntu - Railo - Tomcat (Apache なし) で 404 リダイレクトの問題が発生しました。

サイトの /WEB-INF/web.xml で 404 エラーをカスタム 404.cfm にリダイレクトしています。カスタム 404.cfm は特定の CGI 変数を読み取って処理しようとします。問題は、すべての CGI 変数を取得していないことです。ほとんどが null です。QUERY_STRING は、欠落しているテンプレートから渡される唯一の変数です。残りは null または 404.cfm 用です。

私が欲しいのは、欠落しているテンプレートのテンプレート パスとクエリ文字列です。

以下は、私が試した cfdump の一部です。

<cfdump var="#cgi#">
<cfdump var="#getPageContext().getRequest()#"><!--- returns HTTPServletRequestWrap class, fields, methods --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest()#"><!--- returns ApplicationHttpRequest class, fields, methods --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest().getAttributeNames()#"><!--- returns apparently useable strings --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest().getAttribute("query_string")#"><!--- returns Empty:null --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest().getParameterNames()#"><!--- returns "id" --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest().getHeaderNames()#"><!--- returns apparently useable strings --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest().getQueryString()#"><!--- returns original template's query string Yay! --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest().getRequestURL()#"><!--- returns URL for 404.cfm --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest().getAttribute("Referer")#"><!--- returns Empty:null --->
<cfdump var="#getPageContext().getRequest().getOriginalRequest().getAttribute("Redirect_URL")#"><!--- returns Empty:null --->

どんなアイデアでも大歓迎です。Tomcat は Apache を使用しない Web サーバーであることを思い出してください。

4

1 に答える 1

1

おそらくすべきことは、404 リダイレクトに Tomcat を使用しないことです。あなたは正しいです。最初に要求されたパスを取得できませんでした。これはおそらく設計によるものです。

代わりに、Railo サーバー アドミニストレーターで 404 ハンドラーを CFM ファイルに設定します。実際に要求されたページが表示されます。乾杯!

于 2011-03-25T22:01:38.540 に答える