我正在尝试将所有禁止的请求重定向到404' not found'页。 我正在尝试访问的网址。 http://localhost:4503/content/mysite/home.html(工作正常)。 但是当我试图访问时, http://localhost:4503/content/mysite(这里禁止)。 我的网站是在adobe体验管理器中开发的,我没有看到任何与重定向相关的配置/设置。所以,我必须在这里的Apache服务器上做一些事情。 我并不熟悉Apache并在其中创建规则。 我想问一下是否有任何重定向任何禁止请求的内容 到404找不到页面。
答案 0 :(得分:1)
您可以尝试不同的选项。
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.jsp
中的状态代码。在JSP代码中,如果尚未提交响应,则可以使用HttpServletResponse.setStatus
API来设置404状态代码。如果响应已提交,则无法按照此Sling博客https://sling.apache.org/documentation/the-sling-engine/errorhandling.html mod_rewrite
或PHP
在网络服务器中覆盖它。 This SO question显示了实现此目标的选项。答案 1 :(得分:0)
您可以在调度程序中使用/ filter部分应用简单规则来指定Dispatcher接受的HTTP请求。所有其他请求都会以404错误代码发送回Web服务器。
在你的情况下,它可能是类似的东西。
/filter {
/0001 { /glob "*" /type "deny" }
/0002 { /type "allow" /method "POST" /url "/content/mysite/[.]*.html" }
}
这将首先拒绝访问所有文件,然后允许访问特定内容,在这种情况下,/ mysite下的* .html页面。