本文介绍了删除.htAccess中的尾部斜杠以供CloudFront使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
StackOverflow上有很多"删除尾部斜杠"的正则表达式,它们都很可爱,但它们都有一个相同的问题:它们与Amazon CloudFront等CDN服务不能很好地配合。
所以,我的设置是www.Example是Amazon CloudFront,而我的真实网站是,比如说,real.Example。
下面的三个选项都将很高兴地删除www.example/目录/中的尾部斜杠,但会将URL重写为real.example/目录,这显然不是我想要的。
我已使用
RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ %{REQUEST_URI} [R=301,L]或
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301]或
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{THE_REQUEST} s(.+?)/+[?s] RewriteRule ^(.+?)/$ /$1 [R=301,L]...但所有这些都会暴露"真实"域名。
我如何编写一条regex重写规则来正确删除尾随斜杠,但不会将域重写到源网站?
(我不介意在此处硬编码域URL,但我需要保持http或HTTPS位不变。)
推荐答案您尝试过这样的操作吗?
# Set "protossl" to "s" if we were accessed via . This is used later RewriteRule ^ - [E=protossl] RewriteCond %{HTTPS} on RewriteRule ^ - [E=protossl:s] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ http%{ENV:protossl}://www.example/$1 [R=301,L]更多推荐
删除.htAccess中的尾部斜杠以供CloudFront使用
发布评论