将所有403禁止的请求重定向到aem的404页面
我正在尝试将所有禁止的请求重定向到404'未找到'页面。 Url我正在尝试访问。 http://localhost:4503/content/mysite/home.html(它工作正常)。 但是,当我尝试访问, http://localhost:4503/content/mysite(这里是禁止的)。 我的网站是在Adobe Experience Manager中开发的,我没有看到任何与重定向相关的配置/设置。所以,我必须在这里的Apache服务器上做一些事情。 我对Apache并不熟悉,并在其中创建规则。 我想问问是否有任何重定向任何禁止的请求 404找不到页面。将所有403禁止的请求重定向到aem的404页面
回答:
您可以在调度程序中使用/ filter部分应用简单的规则来指定Dispatcher接受的HTTP请求。所有其他请求都会以404错误代码的形式发送回Web服务器。
就你而言,它可能是类似的。
/filter { /0001 { /glob "*" /type "deny" }
/0002 { /type "allow" /method "POST" /url "/content/mysite/[.]*.html" }
}
这将首先拒绝访问所有文件,然后允许访问特定的内容,其中*在这种情况下,在/ mysite的html的网页。
回答:
有不同的选项,你可以尝试。
- 如果意图是显示一些友好的消息而不是默认的禁止消息,您可以在AEM中定义自己的403错误处理程序。 覆盖
403.jsp
在/apps/sling/servlet/errorhandler/
并添加您的自定义html以显示相关的错误消息。在这种情况下,HTTP响应状态码仍然是403。 示例可以在这个Adobe的博客中找到。 https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/customizing-errorhandler-pages.html - 如果您不希望响应中的403 HTTP状态码,则可以尝试覆盖上述
403.jsp
中的状态码。在JSP代码中,如果响应尚未提交,则可以使用HttpServletResponse.setStatus
API设置404状态码。如果响应已被提交,则不会按照Sling博客中描述的方式工作https://sling.apache.org/documentation/the-sling-engine/errorhandling.html - 您可以使用
mod_rewrite
或PHP
在网络服务器中覆盖它。 This SO question显示了实现此目的的选项。
以上是 将所有403禁止的请求重定向到aem的404页面 的全部内容, 来源链接: utcz.com/qa/260015.html