HTTPS routování a error 404

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

Zdravím, snažíme se překlopit appku na povinný HTTPS, ale v tom případě funguje jen homepage a to jenom pokud nexpiroval login, na žádnou další vnořenou stránku včetně loginu, už to hází 404. Je potřeba nějaký spešl routování na to? V dokumentaci je pod HTTPS napsáno TODO :D Případně daj se od toho https očekávat nějaké další problémy (upload souborů, smtp mail sender)?

Lumeriol
Generous Backer | 56
+
0
-

AdamVyborny napsal(a):

Zdravím, snažíme se překlopit appku na povinný HTTPS, ale v tom případě funguje jen homepage a to jenom pokud nexpiroval login, na žádnou další vnořenou stránku včetně loginu, už to hází 404. Je potřeba nějaký spešl routování na to? V dokumentaci je pod HTTPS napsáno TODO :D Případně daj se od toho https očekávat nějaké další problémy (upload souborů, smtp mail sender)?

Momentálně řeším něco podobného, upravil jsem soubor .htaccess v adresáři www následovně (úprava předpřipraveného zápisu):

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Ovšem dokonalé to není, občas mi to při přechodu z http na https hodí chybu 500 (ale je to jen na testovacím serveru, tak je možné, že to s tím nesouvisí).

AdamVyborny
Člen | 36
+
0
-

Lumeriol napsal(a):

AdamVyborny napsal(a):

Zdravím, snažíme se překlopit appku na povinný HTTPS, ale v tom případě funguje jen homepage a to jenom pokud nexpiroval login, na žádnou další vnořenou stránku včetně loginu, už to hází 404. Je potřeba nějaký spešl routování na to? V dokumentaci je pod HTTPS napsáno TODO :D Případně daj se od toho https očekávat nějaké další problémy (upload souborů, smtp mail sender)?

Momentálně řeším něco podobného, upravil jsem soubor .htaccess v adresáři www následovně (úprava předpřipraveného zápisu):

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Ovšem dokonalé to není, občas mi to při přechodu z http na https hodí chybu 500 (ale je to jen na testovacím serveru, tak je možné, že to s tím nesouvisí).

to nám končí taky 404kou, takže žádná změna

UnkownNick
Člen | 11
+
0
-

… mám stejný problém jako adam, můžete sem někdo napsat už řešení, nebo rovnou celý HTACCESSKO na kterém to funguje?

BTW: mod_ssl enabled (443 listening), Vhost nastavenej správně, PHP 5.6, Nette 2.3/2.4 teď si nejsem úplně

# Apache configuration file (see httpd.apache.org/docs/current/mod/quickreference.html)

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

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

	# prevents files starting with dot to be viewed by browser
	RewriteRule /\.|^\. - [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]
	RewriteCond %{ENV:HTTPS} !^.*on
    RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,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>

TOHLE NEFUNGUJE → končí 404kou

Editoval UnkownNick (16. 8. 2016 14:01)

newPOPE
Člen | 648
+
0
-
  • mas 2 vhosty (pre 80 a 443)?
  • presmerovavaj to vo vhoste ktory pocuva na 80 nech to proste posle na 443 a celu URL

nema co nefungovat

TIP: vykaslal by som sa to chekovat v .htaccesse (staci napr. ze ti tam hosting vrazi proxy a budes vybaveny)

David Grudl
Nette Core | 8082
+
0
-

Se zapnutím 443 snad ani .htaccess nesouvisí, ne? To je věcí httpd.conf.

Každopádně to přesměrování na https je pozdě, podívej se, jak je to řešené v Sandboxu.

UnkownNick
Člen | 11
+
0
-

Asi jsem to nepopsal úplně nejlépe, trošku to rozvedu…

Mám VS na kterém mám deb+apache, tam :80 má svůj vhost a :443 má svůj vhost, do stejné složky nicméně svůj, mod_ssl enabled → kontroloval jsem, nástěnka tudíž index.php se na HTTPSku sepne vklidu, jakmile dojde na router je někde problém:

namespace App;

use Nette;
use Nette\Application\Routers\RouteList;
use Nette\Application\Routers\Route;


class RouterFactory
{

    /**
     * @return Nette\Application\IRouter
     */
    public static function createRouter()
    {
        $secured = (function_exists('apache_get_modules') && in_array('mod_ssl', apache_get_modules())) ? Route::SECURED : 0;
        $router = new RouteList;
        $router[] = new Route('//%domain%/%basePath%/notifications/<action>[/<filter>]', [
            'presenter' => 'Notifications',
            'action' => 'show',
            'filter' => 'all',
        ]);
        $router[] = new Route('//%domain%/%basePath%/<presenter>/<action>[/<id [0-9]+>]', 'Homepage:default', $secured);
        return $router;
    }

.htascces jsem posílal, na vhosta bych musel do terminalu, ale myslím si, že je nastavený dobře když index to pochopí.

Zkoušel jsem procházet snad všechny témata jak tady na fóru kolem toho, tak na netu, popravdě mi prostě došla mana a už mě nenapadá proč když dojde na routing skončí pokaždé 404kou.

A to je důvod proč mě to dovedlo na .htaccess protože mě napadlo, že asi není nastavený tem rewrite mod aby přepsal i HTTPS, nebo sem vedle a potom už nevim.

David Grudl
Nette Core | 8082
+
0
-

Co znamená „je někde problém“?

AdamVyborny
Člen | 36
+
0
-

Vhosty jsou nastavený správně. Ale dostanu se přes https pouze na nástěnku (pokud jsem už loglej), pokud ne provede se redirect na sign/in a to hodí 404: https://www.dropbox.com/…14.24.42.png?dl=0

Editoval AdamVyborny (16. 8. 2016 14:45)

David Grudl
Nette Core | 8082
+
+2
-

Máš vůbec pro ten vhost povolený .htaccess? Tj. AllowOverride All

UnkownNick
Člen | 11
+
0
-

David Grudl napsal(a):

Máš vůbec pro ten vhost povolený .htaccess? Tj. AllowOverride All

Klasika, moc práce málo spánku a napsal jsem to k jiné složce než ve které mám projekt, sypu popel na hlavu za tři dny strávené nad špatným řádkem vHosta :/ Děkuji za navedení správným směrem.

BTW: .htaccess funguje dobře na obou portech tak jak je ze sandboxu, takže to byl z mé strany offtopic, chyba byla tedy na straně serveru.

Editoval UnkownNick (16. 8. 2016 19:48)