缓存在调度程序中的文件路径,并在请求文件路径的子集时呈现 403
File path cached in dispatcher and rendering a 403 when a sub-set of the file path is requested
我们在调度程序中规定不缓存 .pdf
,但允许 .png
。其中一个 .pdf
文件具有 .png
缩略图再现,使 jcr
树结构中的路径 /content/a/b/c.pdf/r/s/t.png
可缓存。
当用户尝试访问 /a/b/c.pdf
apache returns 一个 403 - forbidden
状态代码。该路径在 AEM
应用程序服务器
中有效
我仍然想保持图像缓存并解决 403。
有suggestions/ideas吗?
所以接下来的问题是:当图像被缓存时,调度程序会创建它的路径。其中一个文件夹的名称为 c.pdf。然后,当用户请求 /content/a/b/c.pdf
时,调度员会看到有一个具有该名称的文件夹,并尝试用它进行响应。而且,它当然不是有效的 pdf 文件,甚至根本不是有效文件。您可以在 request.log 中轻松查看 - 在那里您不会看到对此 pdf 的请求,因为调度员发送了对此请求的响应。
我只想到一个解决方案(尽管它很脏):您可以为对 pdf 文件的请求设置重写规则,将 /jcr:content/renditions/original
尾部添加到路径(实际存储 pdf 内容的位置) .
它看起来像:
RewriteCond %{REQUEST_URI} "^/content/dam" [NC]
RewriteCond %{REQUEST_URI} !"jcr_content/renditions" [NC]
RewriteCond %{REQUEST_URI} !"jcr:content/renditions" [NC]
RewriteRule ^/content/dam/(.*\.pdf)$ /content/dam//_jcr_content/renditions/original [L,NE,NC]
另外,不确定,但是最后一行需要标志 R。
我认为最好的解决方案是以这种方式请求资产:
a/b/c.pdf.thumb.48.48.png
而不是:
a/b/c.pdf/jcr:content/renditions/cq5dam.thumbnail.48.48.png
这允许调度程序缓存,并消除元数据和资产之间的冲突。
我们在调度程序中规定不缓存 .pdf
,但允许 .png
。其中一个 .pdf
文件具有 .png
缩略图再现,使 jcr
树结构中的路径 /content/a/b/c.pdf/r/s/t.png
可缓存。
当用户尝试访问 /a/b/c.pdf
apache returns 一个 403 - forbidden
状态代码。该路径在 AEM
应用程序服务器
我仍然想保持图像缓存并解决 403。
有suggestions/ideas吗?
所以接下来的问题是:当图像被缓存时,调度程序会创建它的路径。其中一个文件夹的名称为 c.pdf。然后,当用户请求 /content/a/b/c.pdf
时,调度员会看到有一个具有该名称的文件夹,并尝试用它进行响应。而且,它当然不是有效的 pdf 文件,甚至根本不是有效文件。您可以在 request.log 中轻松查看 - 在那里您不会看到对此 pdf 的请求,因为调度员发送了对此请求的响应。
我只想到一个解决方案(尽管它很脏):您可以为对 pdf 文件的请求设置重写规则,将 /jcr:content/renditions/original
尾部添加到路径(实际存储 pdf 内容的位置) .
它看起来像:
RewriteCond %{REQUEST_URI} "^/content/dam" [NC]
RewriteCond %{REQUEST_URI} !"jcr_content/renditions" [NC]
RewriteCond %{REQUEST_URI} !"jcr:content/renditions" [NC]
RewriteRule ^/content/dam/(.*\.pdf)$ /content/dam//_jcr_content/renditions/original [L,NE,NC]
另外,不确定,但是最后一行需要标志 R。
我认为最好的解决方案是以这种方式请求资产:
a/b/c.pdf.thumb.48.48.png
而不是:
a/b/c.pdf/jcr:content/renditions/cq5dam.thumbnail.48.48.png
这允许调度程序缓存,并消除元数据和资产之间的冲突。