310 'Muitos redirecionamentos' erro que vem a cada poucas horas e resolve-se dentro de alguns minutos

1

Após algumas alterações recentes (veja abaixo), o link funciona bem até a cada 3-6 horas, httpstatus.io começa a reportar 11 redirecionamentos ( Ele não detalha esses redirecionamentos, no entanto, apenas diz "URL não está funcionando corretamente" ou algo assim. É sempre 11.

Ele se resolve dentro de 1 a 5 minutos, informando 0 redirecionamentos novamente ou, se eu reciclar o pool de aplicativos relevante ou editar o arquivo web.config de qualquer forma, ele soluciona o problema imediatamente.

Alguém viu isso ou algo assim antes? Como posso depurar mais?

Histórico

O problema começou após instalar um certificado da Let's Encrypt e mover o site da www não seguro para proteger o não-www em um IP exclusivo. Eu também adicionei um segundo certificado ao servidor FTP.

Os cabeçalhos de resposta quando está funcionando são:

Cache-control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma:no-cache
Content-type:text/html; charset=UTF-8
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Server:Microsoft-IIS/7.5
X-powered-by:PHP/5.6.2
X-pingback:https://mysite.tld/wordpress/xmlrpc.php
Link:https://mysite.tld/wp-json/; rel="https://api.w.org/", <https://mysite.tld/>; rel=shortlink
Set-cookie:PHPSESSID=8kshloboqs5gdh05ej026s5df3; path=/
Date:Fri, 30 Sep 2016 11:28:37 GMT
Connection:close
Content-length:54191

Meu web.config contém os seguintes redirecionamentos:

<rule name="Redirect to non-www" stopProcessing="true">
   <match url="(.*)" />
   <conditions>
      <add input="{HTTP_HOST}" pattern="^mysite\.tld$" negate="true" />
   </conditions>
   <action type="Redirect" url="https://mysite.tld/{R:1}" />
</rule>
<rule name="Redirect to HTTPS" stopProcessing="true">
   <match url="(.*)" />
   <conditions>
      <add input="{HTTPS}" pattern="^OFF$" />
   </conditions>
   <action type="Redirect" url="https://mysite.tld/{R:1}" redirectType="Permanent" />
</rule>

Meu arquivo wp-config.php contém o seguinte para negar qualquer problema de cache do navegador e eu desabilitei o wp-super-cache:

define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
    
por user20856 30.09.2016 / 13:42

2 respostas

1

O problema está na sua URL HTTPS Rewrite.

Altere a regra de Regravação de URL para o que está abaixo e implante-a no "Nível Global" no IIS, para que a regra seja armazenada no applicationhost.config. Se você tiver vários sites, precisará criar uma regra para cada um deles e adicionar outra condição de cada site.

<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
   <match url="(.*)" />
       <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{SERVER_PORT}" pattern="^80$" />
       </conditions>
   <action type="Redirect" url="https://mysite.tld/{R:1}" redirectType="Permanent" />
</rule>

Eu sei logicamente, não faz sentido, eu tive o mesmo problema. Por meio de muitas tentativas e erros, consegui resolvê-lo dessa maneira. Eu sinto suas frustrações, outros também relataram este problema antes, mas nenhuma resolução foi fornecida como você sabe ou então você não estaria colocando essa questão :)

Se esta resposta estiver correta, por favor, marque como tal.

    
por 30.09.2016 / 21:36
0

Acabamos de passar por este exercício e descobrimos que o problema era a caixa de seleção de Require Secure (HTTPS) sign in (You must have enabled SSL on IIS) no servidor IIS. Desmarcar isso resolveu o problema.

Estamos usando o balanceador de carga para redirecionar para HTTPS, para que não seja necessário no servidor. O "muitos redirecionamentos" foi por causa das novas tentativas entre o balanceador de carga e o servidor, portanto, sim, era um problema de redirecionamento, mas não relacionado a nenhum script no servidor.

Obrigado por me apontar na direção certa!

    
por 16.11.2018 / 22:13