Nefunkční hezké url – ceskyhosting + zapnutí https

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

Zdravím,

měl bych hned dva dotazy týkající se routování. První se týká hezkých URL, které se mi nedaří zprovoznit. Prohledal jsem celé fórum, vyzkoušel spousty verzí htaccessu, které jsem našel v diskuzích, ale nic mi hezké URL adresy nezprovoznilo. Hosting mám u českého hostingu. Htaccess který přesměrovává do složky /www funguje, ale ten ve složce www pravděpodobně ne. Zde je můj boostrap.php:

<?php

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

require __DIR__ . '/../vendor/autoload.php';

$configurator = new Nette\Configurator;

$configurator->setDebugMode(true); // enable for your remote IP
$configurator->enableDebugger(__DIR__ . '/../log');

$configurator->setTempDirectory(__DIR__ . '/../temp');

$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->register();

$configurator->addConfig(__DIR__ . '/config/config.neon');

$container = $configurator->createContainer();

if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
    $router = $container->getService('router');
    $router[] = new Route('index.php', 'Front:Default:default', Route::ONE_WAY);

    $router[] = $adminRouter = new RouteList('Cron');
    $adminRouter[] = new Route('cron/<presenter>/<action>', 'Default:default');

    $router[] = $checkerRouter = new RouteList('Checker');
    $checkerRouter[] = new Route('checker/<presenter>/<action>', 'Dashboard:default');

    $router[] = $frontRouter = new RouteList('Front');
    $frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Default:default');

} else {
    $container->addService('router', new SimpleRouter('Front:Front:default'));
}


return $container;

Pokud by mi někdo dokázal pomoct bylo by to super.

Měl bych ještě druhý dotaz ohledně zapnutí HTTPS. Mám na webu nainstalovaný certifikát a když na web přijdu přes https:// tak vše funguje. Ale když v bootstrap.php přidám k routám

Route::SECURED

tak se nic nestane a web ani po smazání cachů jede přes http. Dokázal by mi někdo pomoc jak https zapnout aby to fungovalo.

Díky za rady.

enumag
Člen | 2118
+
0
-

Jak tam máš tu podmínku tak se evidentně použije else větev. Tedy mod_rewrite není zapnutý nebo to PHP nedokáže správně detekovat. Tohle způsobuje oba uvedené problémy.

Nejdříve bych zkusil smazat tu podmínku i celou else větev a zkusil co to udělá. Pokud to nebude fungovat tak doporučuju napsat na podporu.

quiced
Člen | 85
+
0
-

Bez podmínky to funguje, takže bude chyba asi v té podmínce. Nebylo by lepší tu podmínku úplně smazat?

quiced
Člen | 85
+
0
-

Zkoušel jsem tam teď přidat Route::SECURED a hází to bílou stránku bez chyby prostě jenom bílou stránku.

enumag
Člen | 2118
+
+1
-

Podmínku smaž, ohledně HTTPS se musíš podívat do dokumentace toho hostingu nebo zeptat na supportu. Zřejmě nefunguje jen tak.

quiced
Člen | 85
+
0
-

No když Route::SECURED odstraním a zadám si ručně adresu s https:// tak stránka normálně funguje i s certifikáte ale když zadám adresu bez http nebo https tak to přesměrovává na http.