iPhone Safari / Chrome

时间:2017-09-22 14:44:42

标签: ios iphone .htaccess google-chrome safari

因此,我的某个网站项目存在HTTPS问题。当我在桌面Chrome / Opera / Firefox上打开它时它工作正常,但在iPhone Safari / Chrome上,它返回错误“重定向太多”。这只发生在iPhone上。以下是.htaccess文件内容,应将http重定向到https,将www重定向到非www(它位于文件顶部,整个文件中没有重定向数据):

RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

为什么我注意到了HTTPS?因为当我从文件中删除RewriteRule时它加载没有问题。

首先我只在Safari上试过。我删除了互联网历史和cookie - 没有帮助。我下载了新的Chrome并且出现了同样的问题。所以我的问题只发生在...上为什么?为什么?

2 个答案:

答案 0 :(得分:0)

使用[OR]标志将重定向合并为一个:

RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://example.com%{REQUEST_URI} [R=301,L]

这结合了您的规则,应该阻止服务器抛出太多重定向错误。第一个条件检查HTTP是否未打开,第二个条件检查是否存在www

如果其中任何一个条件失败,它将使用301重定向重写URL以使用HTTP并删除www

确保在>测试之前清除缓存

答案 1 :(得分:0)

我使用以下方法修复它

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