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
0
53.63K Odpověď od WEDOS Internet, a.s. 0 Comments

Dobrý den,

jedná se o web vytvořený například pomocí WordPressu?

Často je tato chyba způsobena tím, že .htaccess přesměrovává na https ale v nastavení webu je stále HTTP – https://help.wedos.cz/navody/cms/zmena-url-wordpress/

Role: Podpora Web: https://stackoverflow.com/ Vizitka: Roses are Red, Violets are Blue Unexpected '{' on line 32.
JŠ255861 Odpověděl na otázku 12. 11. 2020
0

Pro účely testu byla v souboru jen uvedená pravidla. V minulosti jsem se setkal s obdobným problémem na druém hostingu. Tehdy byl problém způsobem použitím sdíleného WEDOS certifikátu a vyřešen byl přechodem na Let’s Encrypt.

Zde je však použit Let’s Encrypt certifikát také, tak by uplatnění pravidel nemělo nic bránit. Nevím, zda nemůže hrát roli fakt, že jsem Let’s encrypt nasadil před lety ještě předtím, než ho začal podporovat WEDOS oficiálně? Případně nějaký síťový prvek, který by u tohoto „starého“ serveru (w95.wedos.net) pracoval jinak než u „nového“ (w32.wedos.net)?

Další test provedu během následujího týdne, má to dopad na uživatele, tak se to musí naplánovat.

Role: Zákazník
JŠ255861 Změnil status na publikováno 12. 11. 2020
0
46.16K Odpověď od WEDOS Internet, a.s. 0 Comments

Dobrý den,

nemáte v souboru .htaccess ještě jiná pravidla, která by mohla způsobovat nějaké konflikty?

Zkuste případně i jiná pravidla, třeba tato:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
Header set Content-Security-Policy "upgrade-insecure-requests;"
Role: Podpora Web: https://wedos.cz Vizitka: Produktový manažer.
RM130195 Odpověděl na otázku 11. 11. 2020