Nette 2.4 vs. HTTPS – problém s redirect()?

flamengo
Člen | 131
+
0
-

Zřejmě se budu opakovat, ale nějak an to nemůžu přijít. Aplikace na HTTP bež v pořádku, ale při HTTPS už mám problém.

V htaccees mám dle doporučení podpory hostingu toto:

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]

Všechno funguje, ale problém nástává v admin modulu, kde se v případě nepřihlášeného uživatele přesmeruje takto:

$this->redirect(':Admin:Login:default', ['backlink' => $this->storeRequest()]);

Toto přesmerování je zřejmě ten problém, protože mi to přesměruje na adresu https://www.nazevwebu.cz:80/admin/login/?backlink=v0hb1 a prohlížeč zobrazí chybu ERR_SSL_PROTOCOL_ERROR.

Router nějak takto:

$router[] = new Route('[<locale=cs cs>/]admin/<presenter>/<action>/[<id [0-9]+>/][<dataLang=cs cs|en>]', array(
	'module' => 'Admin',
	'presenter' => 'Admin:Pages',
	'action' => 'default',
	'id' => NULL,
	'dataLang' => 'cs'
));

Verze nette/aplications 2.4.6 dle výpisu composeru.

Toto https://forum.nette.org/…od-nette-2-4#… jsem četl, ale přijde mi, že u verze Nette 2.4 bych nemusel již nic v routeru upravovat.

Předem díky moc za pomoc či navedení, kde pátrat dál.

David Matějka
Moderator | 6445
+
+2
-

mas v configu nastavenou trusted proxy? treba neco jako

http:
	proxy:
		- "172.16.0.0/12"

(respektive dle realne ip proxy serveru)

flamengo
Člen | 131
+
0
-

Vložil jsem a žádný efekt :(

Tak jsem našel ve fóru toto https://forum.nette.org/…-na-active24#… a to je zřejmě stejný problém. Hosting je také Active24.cz.

EDIT: nyní to už funguje. Do index.php jsem vložil následující kód dle příspěvku https://forum.nette.org/…-na-active24#…, velké díky a @DavidMatějka také díky.

if (!empty($_SERVER['HTTPS']) && 'off' !== $_SERVER['HTTPS']) {
    $_SERVER['SERVER_PORT'] = 443;
}

Editoval flamengo (2. 11. 2017 15:34)

crookslovacko
Člen | 74
+
0
-

ahojte mám stejný problém jenže mě to hází pořád error: Pravděpodobně je problém zde

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<system.webServer>
		<rewrite>
			<rules>
				<rule name="Deny Rule 1" patternSyntax="Wildcard" stopProcessing="true">
					<match url="*" />
					<conditions>
						<add input="{URL}" pattern="*" />
					</conditions>
					<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="You do not have permission to view this directory or page using the credentials that you supplied." />
				</rule>
			</rules>
		</rewrite>
	</system.webServer>
</configuration>

Mam pravdu ja ze mi to musi povolit? Nebo mam ještě jiné sance..Samozrejme jsem radky dal nad containerem:

if (!empty($_SERVER['HTTPS']) && 'off' !== $_SERVER['HTTPS']) {
    $_SERVER['SERVER_PORT'] = 443;
}
$container = require __DIR__ . '/../app/bootstrap.php';

$container->getByType(Nette\Application\Application::class)->run();

Mate nejakou radu nad ramec kontaktu active
test: https://www.abuxa.com/kurz/signkurz?… dekuji vsem..po vyplneni neprejde..bez radku by se objevil :80

Editoval crookslovacko (5. 1. 2018 18:20)