Nette přesměrovává z https zpět na http

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

Ahoj, už z toho blázním – zabezpečil jsem web, respektive nechal mu vystavit certifikát, přičemž každý dotaz na https verzi tohoto webu mi končil jako ERR_TOO_MANY_REDIRECTS. Postupným zjištěním jsem zjistil, že to vytváří nette. Z nějakého důvodu se mi snaží přesměrovat naprosto cokoliv na nezabezpečenou verzi webu (nicméně konfigurace serveru říká aby se nezabezpečená verze nepoužívala a směruje zpátky). Pokud na server dám soubor mimo nette, normálně ho zobrazím, pokud v indexu vyřadím nette, vše funguje (tím jsem předpokládám vyřadil i .htaccess). Takže ano je to v Nette. A teď ta zvláštní část – pokud vím tyto věci v Nette ovlivňuje router, přičemž můj router vypadá následovně (jeden by řekl, nic těžkého a speciálního):

class RouterFactory
{

	/**
	 * @return \Nette\Application\IRouter
	 */
	public static function createRouter()
	{
		$router = new RouteList();
		$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
		return $router;
	}

}

zkoušel jsem i donutit router přidávat https přímo do adresy, přesto se snaží přesměrovat na http. Nějaké nápady, kam koukat? Děkuji

David Matějka
Moderator | 6445
+
+2
-

na nette <= 2.3 je nutne pridat SECURED flag https://doc.nette.org/…tion/routing#…

argosovo
Člen | 54
+
0
-

Bylo to ono, děkuji.

josef.jebavy
Člen | 9
+
0
-

Ahoj,
resim stejny problem, ovsem potrebuji ponechat i provoz na http bez ssl, proto bych potreboval, aby URL nette fungovalo jak s tak bez ssl.

David Matějka
Moderator | 6445
+
0
-

na nette 2.4 se to jiz chova tak, ze se pouzije aktualni protokol, takze tam to neni treba resit. u starsiho nette je nutne nastavit ten secured flag dle aktualniho schematu (tzn asi dle $_SERVER['REQUEST_SCHEMA']).. pripadne to rovnou muzes nastavit do teto staticke promenne

ale muzu se zeptat, k cemu je dobre, kdyz to bezi jak na http tak https?

blaztar
Člen | 93
+
+2
-

Nebo si tam ten request hodit konstruktorem a zjistit takto.

if ($this->httpRequest->isSecured()) {
	Route::$defaultFlags = Route::SECURED;
}
josef.jebavy
Člen | 9
+
0
-

Ahoj, zjistil jsem, ze tam mam nette 2.3, tak jsem pouzil nette 2.4 – upravil jsem composer.json, aby sam composer udelal upgrade se me ho nepodarilo donutit… :-(
Upravil projekt pro nette 2.4 a timto to funguje spravne, tak jak nasmeroval David M.

S aplikaci komunikuje IoT HW, ktery zatim nevim, jakou ma podporu https. Veskery UI presmerovavam na HTTPS. https://wireless.xeres.cz/