SSL u Active24 – web ve složce
- sd
- Člen | 87
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
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)