仅针对 Safari 用户代理将 HTTPS 重定向到 HTTP

仅针对 Safari 用户代理将 HTTPS 重定向到 HTTP

是的,你没看错。我只需要 Safari 的 HTTPS 到 HTTP。因为任何地方指向该网站的所有链接都是 HTTPS。

我有一个具有 SSL 证书的网站,通常我们强制通过 .htaccess 将所有流量重定向到 HTTPS。

我遇到了一个仅针对 Safari 的问题,我想强制所有 HTTPS 流量仅针对 Safari 用户代理转为 HTTP。最终,我需要满足可能访问该网站的 Safari 版本的最低标准,无论我个人对此有何看法。HTTP>HTTPS 重定向基本上导致许多旧版 Safari“无法连接到服务器”,并且该网站仅通过 https 网址通过反向链接在互联网上传播。即使人们的设备欺骗、隐藏或不报告他们的用户代理,我也不关心,我只需要尽我所能扩大网络。

我想:

如果用户代理=Safari

从...来https://example.com

http://example.com

这有用吗?说实话,我对正则表达式一无所知。

### Redirect Safari to HTTP
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT}   ^(?!.*Chrome).*Safari$
RewriteRule /(.*)l               https://example.com/$1       [R]
RewriteRule ^(.*)$               http://example.com/          [L,R=302]

提前感谢您提供的任何帮助。

答案1

如果“旧版 Safari”浏览器在通过 HTTPS 发出请求时“无法连接到服务器”,则您无法通过在服务器上发布从 HTTPS 重定向到 HTTP 的重定向来解决此问题。

您需要先通过 HTTPS 成功连接到您的服务器,然后才能发出到 HTTP 的重定向。(第22条军规

我无法控制用户的 Safari 版本,也不能要求人们更新他们的 Safari 版本。

但理论上你可以更改(或修复?)服务器上的 SSL 证书。这是解决这个问题的唯一方法。

您需要使用“旧版 Safari”浏览器支持的 SSL 证书。(受信任的加州也许还有一个不使用存储区域网络。请参阅网站管理员堆栈上的以下问题:https://webmasters.stackexchange.com/questions/53453/which-is-more-supported-by-web-clients-browsers-san-subject-alternative-name

(但有多少你的这对用户有什么影响吗?

相关内容