如何在 Apache + CDN 架构中添加尾部斜杠(不使用 Apache mod_rewrite)?

如何在 Apache + CDN 架构中添加尾部斜杠(不使用 Apache mod_rewrite)?

当请求 URL 中没有尾部斜杠时,我通常会添加它:

当用户请求时https://example.com/blog,应该重定向到https://example.com/blog/

当用户请求时https://example.com/abc.jpg,应该按原样提供

当服务器为 时Apache,似乎通常由 完成mod_rewrite。不幸的是,我们的系统包含一个CDNAWS CloudFront),这在使用时会导致问题mod_rewite:请求将被重定向到原始服务器,浏览器中的 URL 更改为原始服务器的 URL。

我也尝试了mod_aliasRedirectMatch但是看起来正则表达式很难完成复杂的匹配模式(事实上,它需要正则表达式而不是匹配模式)。

Apache那么,对于+架构,通常如何添加尾部斜杠CDN

编辑:

感谢 Michael,事实证明将 CloudFront 中的 Host 标头列入白名单解决了我的问题:重定向的 URL 保持与旧 URL 相同(带有斜杠)。

答案1

这个答案并不能解决标题中的问题。但是,由于关键问题是如何重定向到正确的网址,我接受以下答案。此答案归功于 Michael

它重定向到原始 URL 的原因是由于 CloudFront 的标头转发。如果我​​们将Host标头列入白名单,它将重定向到与用户请求相同的域。

相关内容