从传出网址中删除HTML扩展名

时间:2018-08-06 18:21:24

标签: apache aem sling vanity-url iplanet

我正在使用AEM。我已经使用重定向配置了一些个性化网址。例如:

datetime.date(2018, 7, 23)

同样在Web服务器中,我已经进行了配置以剥离HTML扩展名,因此我的Web服务器通过另一个重定向删除了html扩展名。现在,当我点击虚荣网址时,我将进行2次重定向

/coaties > /content/geometrixx-outdoors/women/coats/winter-coat.html

我想避免2次重定向,也不想向最终用户显示HTML扩展名。

/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]

我在吊索上度过了一段时间,没有运气。我所了解的是,由于Sling将为所有不带扩展名的URL返回403,因此它总是返回带扩展名的URL。在调度程序或Web服务器端可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

如果我理解,您想从网站的所有页面中删除.html扩展名。

@awd的解决方案将确保您页面中的所有href都将转换为不带扩展名的uris。

如果您根本不想在站点中进行任何扩展,则应通过在/ etc / maps下创建map来使用内部重定向,您可以在此处找到官方文档:http://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html

答案 1 :(得分:0)

感谢大家的贡献。

我找到了解决该问题的方法

我将对网络服务器进行以下配置 对于apache,请访问httpd.conf

Header edit Location (.*).html$ $1

对于obj.conf中的iPlanet

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

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