Safari iPad 版出现奇怪的重定向

Safari iPad 版出现奇怪的重定向

我的 Web 服务器出现了最奇怪的问题。它是带 SSL 的 Apache 2。为了简化,我的配置如下所示(example.com 当然指的是我自己的域名):

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    Redirect 301 / https://example.com/
</VirtualHost>

<VirtualHost *:443>

    ServerName example.com

    DocumentRoot /var/www/example

    ... #options and allow/deny for directories

    ... #logging settings

    SSLEngine on
    ... #ssl settings

</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    Redirect 301 / https://example.com/

    SSLEngine on
    ... #ssl settings

</VirtualHost>

本质上,它的作用是将所有非 https 流量重定向到 https 并重定向www.example.comexample.com- 到目前为止一切顺利。

这适用于所有平台上的所有浏览器 - 但有一个例外:iPad 上的 Safari。Mac 上的 Safari 运行良好;iPad 上的其他浏览器运行良好,但在 iPad 上的 Safari 上,我收到“Safari 无法打开页面,因为发生了太多重定向”。

现在,我的设置中唯一的重定向(在 https 上)是从 www.example.com 到 example.com。我将其添加%{Host}i到访问日志中 - 我可以看到请求包含正确的主机名和资源。

这时我完全不知所措了。我不知道该去哪里或看什么。我的客户主要使用 iPad,所以忽略它不是一个选择。

任何想法都将不胜感激。

编辑:

我将 SSL 配置更改为:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    Redirect 301 / https://example.com/
</VirtualHost>

<VirtualHost *:443>

    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example

    ... #options and allow/deny for directories

    ... #logging settings

    SSLEngine on
    ... #ssl settings

</VirtualHost>

现在配置中根本没有重定向。我清除了 iPad 上的所有设置、历史记录和存储的数据 - 但重定向仍在继续!

答案1

好的,互联网+1,苹果-1。

罪魁祸首是mod_spdyApache 2.2。我不知道是什么原因,如何原因,但禁用 mod_spdy 解决了这个问题。

我非常不愿意就这样离开,但是暂时我别无选择。

答案2

您可以在您的服务器上尝试此配置吗?

<VirtualHost *:443>

    ServerName www.example.com
    ServerAlias *.example.com
    Redirect 301 / example.com/

    DocumentRoot /var/www/example

... #options and allow/deny for directories

... #logging settings

SSLEngine on
... #ssl settings

</VirtualHost>

您可以排除最后一个 VirtualHost 块。

相关内容