Routování funguje lokálně, ne na serveru

Lampicka
Člen | 3
+
0
-

Ahoj,

začínám s Nette a učím se podle tutoriálu: https://doc.nette.org/…/single-post
Podobně jako v tutoriálu mám na hlavní stránce několik odkazů, ze kterých se odkazuji na vygenerované stránky. Na lokálu mi vše funguje, vygeneruje se mi stránka třeba http://localhost:8000/lek/show?… a obsah, ale když to stejné zkusím na serveru, dostanu Page not found zprávu na adrese http://www.stud.fit.vutbr.cz/…www/lek/show?… .

HomepagePresenter:

namespace App\Presenters;

use Nette;

class HomepagePresenter extends Nette\Application\UI\Presenter{
	public $database;
	public function __construct(Nette\Database\Context $database){
		$this->database = $database;

    }
	public function renderDefault(){
		$this->template->lek = $this->database->table('lek')
			->order('id_lek DESC')
			->limit(5);
	}
}

default.latte:

{block content}
    {foreach $lek as $l}
    <div class="lek">
        <div class="date">{$l->id_lek}</div>
		<h2><a n:href="Lek:show $l->id_lek">{$l->nazev}</a></h2>
        <h2>{$l->nazev}</h2>
        <div>{$l->nazev}</div>
    </div>
    {/foreach}
{/block}

LekPresenter:

namespace App\Presenters;

use Nette;
use Nette\Application\UI\Form;

class LekPresenter extends Nette\Application\UI\Presenter
{
    /** @var Nette\Database\Context */
    private $database;

    public function __construct(Nette\Database\Context $database)
    {
        $this->database = $database;
    }

    public function renderShow($id_lek)
    {
        $lek = $this->database->table('lek')->get($id_lek);
		if (!$lek) {
			$this->error('Stránka nebyla nalezena');
		}
		$this->template->lek = $lek;
	}
}

show.latte:

{block content}

<p><a n:href="Homepage:default">← zpět na výpis leku</a></p>

<h1 n:block="nazev">{$lek->nazev}</h1>

<div class="nazev">{$lek->nazev}</div>

Kdyby mi mohl někdo poradit, v čem je problém, moc by mi to pomohlo.

LukasV
Člen | 5
+
0
-

@Lampicka Pravděpodobně tam máš něco s mod_rewrite. Podívej se třeba sem: https://forum.nette.org/…cnim-serveru

CZechBoY
Člen | 3608
+
0
-

Na fitu je myslim potreba nastavit RewriteBase, ale z hlavy ted nevim na jakou hodnotu. Kdyztak vecer se ti kouknu.

Lampicka
Člen | 3
+
0
-

Zkoušel jsem na serveru rozchodit Nette Requirements Checker, abych viděl, jestli je dostupný mod_rewrite, ale dozvěděl jsem se jenom že „Requirements Checker is available only from localhost“.
Na RewriteBase jsme se koukal, ale úplně nevím jak zjistit, na co to přesně nastavit.

CZechBoY
Člen | 3608
+
0
-

Já používám toto pro pro nezměněnou adresářovou strukturu (jako ta v sandboxu nebo web-project):
samozřejmě v podsložce slozka – u tebe to bude IIS

RewriteEngine on
RewriteBase /~xlogin00/slozka/
RewriteRule (.*) /~xlogin00/slozka/www [R=301,QSA,L]
Lampicka
Člen | 3
+
0
-

CZechBoY napsal(a):

Já používám toto pro pro nezměněnou adresářovou strukturu (jako ta v sandboxu nebo web-project):
samozřejmě v podsložce slozka – u tebe to bude IIS

RewriteEngine on
RewriteBase /~xlogin00/slozka/
RewriteRule (.*) /~xlogin00/slozka/www [R=301,QSA,L]

Upravil jsem to na svoje adresáře na:

RewriteEngine on
RewriteBase /~xsvobo0z/IIS/ordinace/
RewriteRule (.*) /~xsvobo0z/IIS/ordinace/www [R=301,QSA,L]

ale teď po připojení na www.stud.fit.vutbr.cz/…rdinace/www/ dostanu This page isn’t working. www.stud.fit.vutbr.cz redirected you too many times. Asi to cyklicky redirectuje.

Adresáře mám takhle:

WWW
	|-- IIS
		|-- ordinace
			|-- www
			|-- app
			|-- log
			|-- temp
			...
CZechBoY
Člen | 3608
+
0
-

Uz neni potreba www :-)