С моим веб-сервером происходит самая странная вещь. Это 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.