Apache服务器添加尾部斜杠引发多次重定向循环问题
解决URL尾部斜杠导致的多次重定向问题
问题根源在于你当前的尾部斜杠移除规则——跳转时未指定协议,Apache默认使用HTTP发起跳转,这触发了前面的HTTPS强制规则,进而产生两次301跳转。
修改.htaccess配置,给尾部斜杠移除规则加上协议约束,避免跳转到HTTP协议:
RewriteEngine On # www域名转非www并强制HTTPS RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ https://example.com/$1 [L,R=301] # 移除非目录URL的尾部斜杠,保持当前访问协议 RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/$ %{REQUEST_SCHEME}://%{HTTP_HOST}/$1 [R=301,L]
如果你确定全站仅使用HTTPS,也可以直接写死协议:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ https://example.com/$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/$ https://example.com/$1 [R=301,L]
修改完成后,建议清空浏览器缓存再测试——301重定向会被浏览器持久缓存,旧缓存可能干扰测试结果。
内容的提问来源于stack exchange,提问作者Torikul Islam
相关产品推荐
相关产品推荐

