Назад | Перейти на главную страницу

Странные перенаправления только для iPad в Safari

С моим веб-сервером происходит самая странная вещь. Это Apache 2 с SSL. Чтобы упростить, вот почему моя конфигурация выглядит так (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.com к example.com - Все идет нормально.

Это работает для всех браузеров на всех платформах, за одним исключением: Safari на iPad. Safari на Mac работает нормально; другие браузеры на ipad работают нормально, но в Safari на ipad я получаю «Safari не может открыть страницу, потому что произошло слишком много перенаправлений».

Теперь единственное перенаправление, которое у меня есть в моей настройке (на https), - с www.example.com на example.com. я добавил %{Host}i в журнал доступа - и я вижу, что запросы содержат правильное имя хоста и ресурс.

На этом я полностью озадачен. Не знаю, где и на что еще смотреть. Мой клиент в основном использует айпады, поэтому игнорировать его нельзя.

Любые идеи приветствуются.

РЕДАКТИРОВАТЬ:

Я изменил конфигурацию 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 для Apple.

Виновником был mod_spdy на Apache 2.2. Я не знаю, что, как и почему, но отключение mod_spdy решило проблему.

Я не очень рад, чтобы все было так, но у меня пока нет выбора.

Можете ли вы попробовать эту конфигурацию на своем сервере?

<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.