2011-03-25 5 views
0

우분투 - 레일로 - Tomcat (Apache 없음)에서 404 리디렉션 문제가 발생했습니다.Railo Tomcat 404 리디렉션 및 CGI vars

사이트의 /WEB-INF/web.xml에서 404 오류를 특정 CGI 변수를 읽고 실행하려고하는 404.cfm으로 리디렉션했습니다. 문제는 CGI 변수를 모두 얻지 못하고 있으며, 대부분 null입니다. QUERY_STRING은 누락 된 템플리트에서 전달 된 유일한 변수입니다. 나머지는 null이거나 404.cfm입니다.

내가 원하는 것은 누락 된 템플릿의 템플릿 경로와 쿼리 문자열입니다. 어떤 아이디어가 크게 감상 할 수

<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 ---> 

:

는 여기에 내가 해봤 cfdumps의 일부입니다. Tomcat은 Apache가없는 웹 서버입니다.

답변

1

404 리디렉션에 Tomcat을 사용하지 않는 것이 좋습니다. 당신이 맞습니다, 나는 그것을 원래의 요청 경로를 얻을 수 없습니다. 이것은 의도적으로 설계된 것입니다.

대신 Railo 서버 관리자의 404 처리기를 CFM 파일로 설정하십시오. 그런 다음 실제 요청한 페이지가 표시됩니다. 건배!

+0

내 tuckey urlrewrite 필터가 오류를 무시하고 모든 것을 index.cfm에 던지면 궁금합니다. 이것이 의미가 있습니까? Railo Web Admin에 사용자 정의 404.cfm을 추가하고 오류 페이지를 내 web.xml에 주석 처리했습니다. –

+0

예, 아담의 제안이 효과가 있습니다! 1. 맞춤 설정을 위해 Railo admin을 사용합니다. 2. 맞춤 404 템플릿을 자체 디렉토리 으로 이동합니다. tuckey urlrewrite.xml을 조정하여 해당 오류 디렉토리를 허용합니다. 존재하지 않는 루트 수준의 .CFM 요청이 index.cfm으로 리디렉션됩니다. (무라 사이트). 맞춤 404 페이지로 이동하기를 바랍니다. 질문은 다음과 같습니다 : 1. urlrewrite 필터에서 reg ex로 이것을 해결하는 가장 좋은 방법은 있습니까? 2. 그렇다면 reg ex는 무엇입니까? index.cfm을 제외한 모든 루트 수준 페이지 (* .cfm + * .html)가 404에 들어갈 수 있도록 전달하려고합니다. 3.이 논리가 맞습니까? 면제를 어디로 가야합니까? –