Estou tendo a coisa mais estranha acontecendo com meu servidor web. É o Apache 2 com SSL. Para simplificar, aqui está a aparência da minha configuração (example.com refere-se ao meu próprio domínio, é claro):
<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>
Essencialmente, o que ele faz é redirecionar todo o tráfego não-https para https e redirecionar www.example.com
para example.com
- até agora, tudo bem.
Isso funciona para todos os navegadores em todas as plataformas - com uma exceção: Safari no iPad. Safari no mac funciona bem; outros navegadores no ipad funcionam bem, mas no Safari no ipad recebo "O Safari não pode abrir a página porque ocorreram muitos redirecionamentos".
Agora, o único redirecionamento que tenho em minha configuração (em https) é de www.example.com para example.com. Eu adicionei %{Host}i
ao log de acesso - e posso ver que as solicitações contêm o nome do host e o recurso corretos.
Neste ponto, estou completamente perplexo. Eu não sei onde ou o que mais olhar. Meu cliente usa principalmente ipads, então ignorá-lo não é uma opção.
Todas as ideias são muito apreciadas.
EDITAR:
Eu mudei a configuração SSL para isso:
<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>
Agora não há redirecionamentos na configuração. Limpei todas as configurações, histórico e dados armazenados do ipad - e ainda está redirecionando!
OK, +1 para a internet, -1 para a Apple.
O culpado estava
mod_spdy
no Apache 2.2. Não sei o que, como ou por quê, mas desabilitar o mod_spdy resolveu o problema.Não estou muito feliz em deixar assim, mas não tenho escolha por enquanto.
Você pode tentar esta configuração em seu servidor?
Você pode excluir o último bloco VirtualHost.