我有一个包含
的htaccess文件RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# Turn SSL on for
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/m/log
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Turn SSL off
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/m/log
RewriteCond %{REQUEST_URI} !^/m/stil
RewriteCond %{REQUEST_URI} !^/m/slike
RewriteCond %{REQUEST_URI} !^/m/slikce
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
它在除iPhone以外的其他设备上运行良好。如何解决这个问题?
这只发生在/m/log
上,而使用iPhone6,这是好的iPhone 4。无论站点是通过HTTP
还是HTTPS
访问,还是通过www
或裸域访问,都将发生这种情况。
我使用以下方法修复了它
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
rewritecsecond %{HTTPS} off
导致错误。使用
writecsecond %{SERVER_PORT} !^443$
快速查看了站点本身的网络流量,似乎在提供https://example.com/m/log
(即。("安全"页面),您有一些图像(包括favicon.ico
)被重定向回http
。这将导致"混合内容"和不安全的连接。有些浏览器可能会弹出警告,或者干脆不显示通常的"挂锁"。(谷歌Chrome浏览器省略了绿色挂锁,但在检查安全信息时只突出了"混合内容"问题。)这需要纠正。
如果user-agent(即。iPhone 6上的Safari)试图通过重新请求安全资源来"纠正这一点"(使其安全),那么你很可能会以"太多的重定向"(重定向循环)告终。
有问题的图像(url)。
-
/slikce/smile.png
(奇怪的是,这也返回X-Pad: avoid browser bug
响应头?) -
/log/slike/1471075891/tm_13950809_10209500982108999_1789026171_o.jpg
-
/favicon.ico
上面所有的url都出现在"安全"的HTML页面上,但是,它们会按照你的。htaccess文件中的规则被301重定向回HTTP
。
(似乎HTTPS请求由Apache处理,但HTTP
请求由Nginx处理?)
顺便说一下,我在iOS 9 (iPad)上测试你的网站时也看到了这个错误…
Safari无法打开页面,因为发生了太多重定向。