Apache 从传出URL中删除HTML扩展名

Apache 从传出URL中删除HTML扩展名,apache,aem,sling,vanity-url,iplanet,Apache,Aem,Sling,Vanity Url,Iplanet,我正在使用AEM。我已经用重定向配置了一些虚荣URL。例: /coaties > /content/geometrixx-outdoors/women/coats/winter-coat.html 同样在web服务器中,我进行了剥离HTML扩展的配置,以便我的web服务器通过另一个重定向删除HTML扩展。现在,当我点击虚荣网址,我将有2个重定向 /coaties > /content/geometrixx-outdoors/women/coats/winter-coat.html

我正在使用AEM。我已经用重定向配置了一些虚荣URL。例:

/coaties > /content/geometrixx-outdoors/women/coats/winter-coat.html
同样在web服务器中,我进行了剥离HTML扩展的配置,以便我的web服务器通过另一个重定向删除HTML扩展。现在,当我点击虚荣网址,我将有2个重定向

/coaties > /content/geometrixx-outdoors/women/coats/winter-coat.html [1st redirect]
/content/geometrixx-outdoors/women/coats/winter-coat.html > 
/content/geometrixx-outdoors/women/coats/winter-coat [2nd redirect]
我想避免2个重定向,我不想向最终用户显示HTML扩展

/coaties > /content/geometrixx-outdoors/women/coats/winter-coat [only one redirect]

我花了一段时间在吊带上,运气不好。我所理解的是,由于Sling将为所有不带扩展名的URL返回403,所以它总是返回带扩展名的URL。这在dispatcher或web服务器端是否可行?

如果我理解,您希望从站点的所有页面中删除.html扩展名

@awd的解决方案将确保页面中的所有href都转换为uri,而无需扩展


如果您不希望站点中有任何扩展,您应该通过在/etc/maps下创建地图来使用内部重定向,您可以在此处找到官方文档:

感谢大家的贡献

我找到了这个问题的以下解决方案

我将为webserver执行以下配置 对于apache,在httpd.conf中

Header edit Location (.*).html$ $1
对于obj.conf中的iPlanet

<If $srvhdrs{'Location'} =~ "^(.*).html$">
   Output fn="set-variable" $srvhdrs{'Location'}="$1"
</If>

Output fn=“set variable”$srvhdrs{'Location'}=“$1”

这将确保从重定向URL的位置标头中删除html扩展名。

在发送到aem之前,您可以使用Apache用扩展名重写URL。也不要使用虚荣网址。将所有重定向/重写保存在dispatcher将更易于管理。Apache重写将帮助我在发送到aem时删除扩展。但我想在从aem发送到浏览器时删除扩展名。我们还需要使用虚荣,以便作者可以配置它们。作者无法在Web服务器中配置重定向。