.htaccess在Safari中重定向太多



我有一个包含

的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无法打开页面,因为发生了太多重定向。

最新更新