我有一个简单的用例,如下:
- AEM 抛出500错误
- 最终用户被重定向到/apps/sling/servlet/errorhandler/Throwable.jsp,其中包含500错误页面的位置。
然而,我想做的是,在页面属性advance选项卡中创建一个路径字段,以便作者可以在根页面设置错误500页。
使得:
如果在:/content/sitename/en/home/products/myproduct.html抛出500错误错误500页属性设置在:/content/sitename/zh/错误500页位于/content/sitename/en/home/errors/500.jsp
CQ应该在页面树结构中搜索,从错误抛出的地方到错误500页设置的地方,然后无论它在哪里找到错误处理程序设置的第一个属性,它都会通过/apps/sling/servlet/errorhandler/Throwable.jsp将其重定向到500页。
所以,在/apps/sling/servlet/errorhandler/Throwable.jsp中,完整的代码是:
<%@page session="false"
import="com.day.cq.wcm.commons.WCMUtils"
import="org.apache.sling.api.resource.Resource"
import="javax.jcr.Node"
%>
<%
%><%@include file="/libs/foundation/global.jsp" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String errorPage= WCMUtils.getInheritedProperty(currentPage, resourceResolver, "errorrPageRedirect");
%>
<c:redirect url="${errorPage}"/>
Doesn't seems to be working. Am I missing something ?
你看过https://adobe-consulting-services.github.io/acs-aem-commons/features/errorpagehandler.html吗?
您甚至可以为不同的路径指定不同的404页面。我不记得是否有限制在哪里的错误页必须相对于路径,但它符合您的要求。