SSL u Active24 – web ve složce

sd
Člen | 87
+
0
-

Zdravím,

bojuji s rozchozením https u Active24, web je umístěn v sub-složce (tedy domena.cz/aplikace/).
Ve složce domena.cz/aplikace mám .htaccess s přesměrováním do ./www:

<?php
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^$ www/ [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^www/
    RewriteRule ^(.*)$ www/$1
</IfModule>
?>

bez <?php ?> samozřejmě; „backticky“ mi nefungovaly na víceřádkový kód

A v aplikace/www/ mám .htaccess:

<?php
# disable directory listing
<IfModule mod_autoindex.c>
	Options -Indexes
</IfModule>

# enable cool URL
<IfModule mod_rewrite.c>
	RewriteEngine On
    #RewriteBase /

    RewriteCond %{HTTP_HOST} !^www. [NC]
    RewriteRule ^(.*)$ https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

    # use HTTPS
    #RewriteCond %{HTTPS} !on
    #RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    RewriteCond %{HTTP:X-Forwarded-Proto} !=https
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

    # prevents files starting with dot to be viewed by browser
    RewriteRule /\.|^\.(?!well-known/) - [F]

    # front controller
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$ index.php [L]
</IfModule>

# enable gzip compression
<IfModule mod_deflate.c>
	<IfModule mod_filter.c>
		AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml
	</IfModule>
</IfModule>
?>

K přesměrování na https dojde, ale v url je i přes první .htaccess /www/ a hlavně Nette zřejmě z nějakého důvodu nerozpozná, že jede na https, takže veškeré formuláře po odeslání prohlížeč „shodí“ s hláškou že "Nemůže stránku otevřít, protože nemůže navázat zabezpečené připojení k serveru" – zřejmě Nette po odeslání formuláře vrací http adresu(?) Zkoušel jsem do routeru přidat Route::SECURED, s tím to fungovalo, ale to je deprecated.

Nemá s tím někdo zkušenost nebo neví co s tím?

Dík moc!

Editoval sd (1. 2. 2018 13:33)

spagr
Člen | 17
+
+4
-

HTTPS u Active24.cz chce lehčí hack, mě jede toto :
.htaccess

...
	#Redirect from HTTP to HTTPS
	#With Hack for Active24 reverse proxy Nginx
	RewriteCond %{HTTPS} !on
	RewriteCond %{HTTP:X-Forwarded-Proto} !^https$
	RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
...

index.php

<?php
// hack for https proxies
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
	if ($_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' && isset($_SERVER['SERVER_PORT']) && in_array($_SERVER['SERVER_PORT'], [80, 82])) { // https over proxy
		$_SERVER['HTTPS'] = 'On';
		$_SERVER['SERVER_PORT'] = 443;
	} elseif ($_SERVER['HTTP_X_FORWARDED_PROTO'] === 'http' && isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 80) { // http over proxy
		$_SERVER['HTTPS'] = 'Off';
		$_SERVER['SERVER_PORT'] = 80;
	}
}

//$container = require __DIR__ . '/../app/bootstrap.php';
$container = require __DIR__ . '/../home/app/bootstrap.php';

$container->getByType('Nette\Application\Application')->run();
?>

A k adresářové struktuře :
aplikaci (app, log, temp, vendor) doporučuji umístit na FTP (SSH) do /home/ a k bootstrap.php nastavit v index.php ve zvolené složce správnou cestu, viz. můj příklad

Špágr

Editoval spagr (1. 2. 2018 14:45)

sd
Člen | 87
+
0
-

Super, díky moc! Funguje to :)