0

我在 Ubuntu - Railo - Tomcat(无 Apache)上遇到了 404 重定向问题。

我有站点的 /WEB-INF/web.xml 将 404 错误重定向到自定义 404.cfm,它尝试读取某些 CGI 变量并对其进行操作。问题是我没有得到所有的 CGI 变量,大多数都是空的。QUERY_STRING 是从缺少的模板传递的唯一变量。其余的要么为空,要么为 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

您可能应该做的是不使用 Tomcat 进行 404 重定向。你是对的,我无法获得最初请求的路径。这很可能是设计使然。

而是将 Railo 服务器管理员中的 404 处理程序设置为您的 CFM 文件。然后您将看到实际请求的页面。干杯!

于 2011-03-25T22:01:38.540 回答