Savana HTTPS smyčka v přesměrování

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
sasule
Člen | 18
+
0
-

Zdravím všechny!

Potřebuji na jednom webu hostovaném na Savaně rozjet HTTPS. Routy mám tyto:

<?php
 $router[] = new Route('<module acl>/<presenter>/<action>[/<id>]', 'Homepage:default', Route::SECURED);
 $router[] = new Route('<presenter>/<action>[/<id>][/<date>]', array(
        'module' => 'Default',
        'presenter' => 'Homepage',
        'action' => 'default',
        'id' => NULL,
        'date' => NULL,
        ), Route::SECURED);
?>

Ve chvíli, kdy je nastaveno Route::SECURED, vygeneruje se Smyčka v přesměrování. Zkouším i „čistou“ instalaci nette (sandbox), k nahlédnutí zde. Generuje se neustále 301 – Moved Permanently.

Zajímavé je, že když Route::SECURED nepoužiji a jdu na uvedenou stránku (HTTP) a poté do adresy napíši HTTPS, tak se to provede v pořádku. Odkazy (vše mám přes n:href) na HTTPS zůstanou, ale přesměrování např. ve formulářích jde zpět na HTTP (čemuž rozumím, že to takto dle rout má být).

V konfiguraci na Savaně je pouze zatrženo „Naslouchat na portu 443 (SSL)“.

Pokud by někdo věděl, co s tím, budu velmi rád :-)

thunderbuff
Člen | 164
+
0
-

Přesně tohle se stane, pokud máš před webserverem proxy, která komunikuje s klientem po https a s webserverem už jen po http. Když jsem to řešil u sebe, pomohl mi tento „hack“ na začátku bootstrap.php:

<?php

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
	$_SERVER['HTTPS'] = 'On';
	$_SERVER['SERVER_PORT'] = 443;
}

?>
sasule
Člen | 18
+
0
-

@thunderbuff: Díky moc, šlape jak hodinky!

thunderbuff
Člen | 164
+
0
-

Myslel jsem si, že je to čistě můj problém, vidím, že není, možná by to sneslo zakomponování do requestfactory a pull request :-)

Editoval thunderbuff (5. 11. 2013 15:58)

sasule
Člen | 18
+
0
-

Zdravím,

nechci zakládat nové vlákno, tak to píšu sem:

Stále řeším https na savaně, jak jsem psal výše. Dostal jsem se k dalšímu problému, že mi nechce žádná session, či cookie přežít zavření prohlížeče, byť by měla – Vše je nastaveno správně dle dokumentace (a na HTTP to chodí jak má).

Věděl by někdo, čím to? Tipuji na přímou souvislost s certifikátem.