iPhone Safari/Chrome上的重定向太多



,因此我的网站项目之一与HTTPS有问题。当我在桌面铬/opera/firefox上打开它时,它可以正常工作,但是在iPhone Safari/chrome上,它会使我返回错误"重定向太多"。这仅在iPhone上发生。这是.htaccess文件内容,应将HTTP重定向到HTTPS,然后www www为nonwww(它在文件的顶部,整个文件中没有重定向数据):

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?因为当我从文件中删除重写时,它会毫无问题地加载。

首先,我仅在Safari上尝试。我删除了互联网历史记录和饼干 - 没有帮助。我下载了新鲜的铬,也发生了同样的问题。因此,我的问题仅在https上发生...为什么?

只需使用[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,以使用HTTPS并删除www

确保在测试之前清除缓存

我通过使用以下方法

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

最新更新