Too many redirects

Vyřešeno1.82K zhlédnutíWebhosting
0

Nekonečná smyčka při přesměrování, chyba Too many redirects, rozdílné chování na dvou doménách.

Zdravím, mám dva hostingy:

  1. NoLimit Extra běžící na jedné doméně (w95.wedos.net)
  2. NoLimit běžící na druhé doméně (w32.wedos.net)

Na obou doménách jsou použity Let’s Encrypt certifikáty (příplatková služba HTTPS na doméně).

Snažím se uplatnit přesměrování na https a www doménu pomocí .htaccess souboru (v kořenovém www adresáři). Způsob přesměrování je stejný pro obě domény.

Zatímco na druhém hostingu přesměrování funguje výborně, na prvním selže na chybě Too many redirects.

Dojde korektně k přesměrování z http → https, ale pak vznikne nekonečná smyčka. V accesslogu ani v errorlogu nevidím nic zajímavého.

Proč se chování mezi hostingy liší? Jak to opravit?

# Turn on Rewrite Engine
RewriteEngine On
 # Redirect to HTTPS
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 # Redirect to www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
RM130195 Vybral nejlepší odpověď 18. 11. 2020
0

Metodou pokus – omyl jsem zjistil příčinu problému.

Na webu běží systém phpBB. Nevypadá to, že by interní nastavení domény způsobovalo cyklení – ať je nastavené jakkoliv.

Chybu způsobuje pravidlo

RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]

Bez něj přesměrování funguje, resp. stačí odebrat jen to [OR] na konci.

Problém jsem tedy vyřešil a přesměrování na https://www je funkční.

Přesto by mě zajímalo, proč na jednom serveru to pravidlo s [OR] nefunguje a na druhém ne. Nečekal jsem, že takto v podstatě jednoduchá a základní věc bude ve finále tak pracná 🙂

Role: Zákazník
RM130195 Vybral nejlepší odpověď 18. 11. 2020
Prohlížíte 1 ze 4 odpovědí, klikněte zde pro zobrazení všech odpovědí.