Https导致Safari上的重定向过多

时间:2016-08-13 18:55:29

标签: .htaccess redirect safari

我最近开始将我的域重定向到https,我在Safari上遇到“太多重定向”错误,特别是在移动设备上。在任何计算机和任何其他浏览器中一切正常。

以下是我完成重定向的方法。

主域名

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example\.com%{REQUEST_URI} [R=301,L,NE]

我还禁用了Cloudflare,因为它导致我的SSL出现问题,我修复了DNS传播的一些问题。

修改

它会影响除计算机以外的所有Safari浏览器,并且删除缓存无法解决问题。我只有一个域名,但有一些子域名。

我在.htaccess中有其他指令:

RewriteCond %{HTTP_HOST} ^example.com$ [OR]
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^folder\/?(.*)$ "http\:\/\/example\.com\/all\-categories\/folder\/$1" [R=301,L]

编辑:已解决

更改主机为我解决了这个问题。

3 个答案:

答案 0 :(得分:0)

.cbr

由于您将所有内容重定向到RewriteRule ^folder\/?(.*)$ "http\:\/\/example\.com\/all\-categories\/folder\/$1" [R=301,L] ,因此您也应该在上面的重定向中执行此操作。否则你将最终得到额外的(不必要的)重定向。所以这应该改写为:

https

我还整理了正则表达式和替换(这看起来像cPanel会生成的东西?)。 RewriteRule ^folder/?(.*) https://example.com/all-categories/folder/$1 [R=301,L] 替换中不需要所有反斜杠转义(和双引号)。而RewriteRule 模式中的反斜杠转义也是多余的。

然而,我怀疑这是否足以满足Safari(移动)。 (?)

答案 1 :(得分:0)

当您使用CloudFlare的灵活SSL时; Web服务器可能无法正确识别连接何时应该通过SSL以及何时不应该。

因此你应该尝试install Mod_CloudFlare on your webserver来解决这个问题,如果你不能这样做,你可以改为从Apache .htaccess中的X-Forwarded-Proto头设置你的SSL环境变量:

  

SetEnvIf X-Forwarded-Proto https HTTPS = on

答案 2 :(得分:0)

我使用以下方法修复它

RewriteCond %{SERVER_PORT}  !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  

RewriteCond%{HTTPS} off

导致错误。使用

  

RewriteCond%{SERVER_PORT}!^ 443 $

修复它。