AEM Apache Dispatcher 2.4.6客户端被服务器配置拒绝

问题描述 投票:1回答:1

我有一个AEM 6.3实例在一个Apache实例后面运行,该实例的版本为2.4.6,其中装有Dispatcher模块。一切都很好,但是现在我需要清除所有以“ .html”结尾的URL的所有查询参数。

这听起来很容易实现,但是我遇到了一个我无法解决的问题。这是我用来从以.html结尾的URL中删除所有查询参数的重写规则:

RewriteRule ^/(.*)\.html$ /$1.html [QSD]

[从技术上讲,人们可能会认为此重写实际上不是重写,因为它是将原始请求发送到相同的URL,但是标志QSD用于删除所有查询参数。

问题是,如果我重新加载包含此规则的Apache实例,就会开始出现如下错误:

[Wed Jun 10 14:53:35.698908 2020] [authz_core:error] [pid 31733] [client 54.209.162.6:61649] AH01630: client denied by server configuration: /etc/clientlibs, referer: https://my.domain.com/etc/clientlibs/mygroup/some/simple/page.html

我知道有些人从Apache 2.2迁移到2.4时会遇到类似问题。这不是我的情况,并且我还检查了我的vhost配置。我没有来自Apache 2.2的指令,例如“ Order deny,allow”或“ Allow from all”。我正在使用“要求所有已授予”。

AEM日志中的一件奇怪的事情是,当我的重写规则不到位时,我可以看到error.log日志记录,发现“ /etc/clientlibs/mygroup/some/simple/page.html”。但是,如果我遵循规则并重新加载Apache,我会从日志中看到:

10.06.2020 10:16:40.085 *INFO* [54.209.162.6 [1591798600081] GET /etc/clientlibs/mygroup/some/simple/page/jcr:content.json HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Resource /etc/clientlibs/mygroup/some/simple/page/jcr:content.json not found

就像扩展名.html会从URL中剥离一样,并且由于没有扩展名,因此AEM或Sling试图使用默认的内容解析器JSON。

java apache aem dispatcher sling
1个回答
0
投票

在重写规则之前添加一个条件以跳过要在/ etc / clientlibs中应用此规则的情况。 RewriteCond %{REQUEST_URI} !^/etc/clientlibs.*

© www.soinside.com 2019 - 2024. All rights reserved.