routování – špatná změna url

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

Hojte,

potřebuju vyvolat stejný presenter:action přes dvě různé url /periodika a /periodici

mám v routách uvedeno následující:

$router[] = new Route('/periodika', 'Magazine:list');
$router[] = new Route('/periodici', 'Magazine:list');

Pokud přistoupím na /periodika, je to v pořádku, url zůstane /periodika
Pokud přistoupím na /periodici, tak to url změní na /periodika, což je nežádoucí. Potřebuju, aby url zůstalo /periodici.

Jak toho dosáhnout?

enumag
Člen | 2118
+
0
-

Vypni tohle.

Paimutan
Člen | 33
+
0
-

díky

Paimutan
Člen | 33
+
0
-

Update: předtím jsem to obešel jinak. Teď jsem ale na podobný problém narazil v jiném projektu, kde už to obejít nejde.

Jak mám tedy prosím vypnout tohle?

Prosím o konkrétní příklad.

Nette verze 2.0.5

Editoval Paimutan (27. 3. 2014 8:31)

Paimutan
Člen | 33
+
0
-

Takže řešení asi neexistuje. Obejdu to tedy zase jinak.

norbe
Backer | 405
+
0
-

Jedná se opravdu o stejnou stránku, nebo jde o jiný jazyk? Nebo k čemu je dobré že máš jednu stránku přístupnou z 2 url?

Paimutan
Člen | 33
+
0
-

To periodika versus periodici je starý případ, teď už to řeším na jiných url, ale princip sedí.

Je to ale asi chyba (mého) návrhu, ty stránky se liší v detailech, proto jsem nechtěl dělat dvě různé metody na obsluhu.

Ale asi to bude nakonec lepší řešení (udělat dvě různé metody, do kterých povedou ty dvě různé url, ale nakonec se zavolá ta jedna obslužná metoda).

Michal Vyšinský
Člen | 608
+
0
-

Co něco takového?

$router[] = new Route('/periodika', array(
    'presenter' => 'Magazine',
    'action' => 'list',
    'foo' => 'foobar'
));
$router[] = new Route('/periodici', array(
    'presenter' => 'Magazine',
    'action' => 'list',
    'foo' => 'barfoo'
));

Díky parametru ‚foo‘ nebude brát nette ty dvě routy jako stejné akce, takže nebude kanonikalizovat

Paimutan
Člen | 33
+
0
-

Michal Vyšinský Paráda, funguje, díky moc :)

David Ďurika
Člen | 328
+
0
-

nestalico by vypnut toto https://api.nette.org/…ter.php.html#62 ?

Paimutan
Člen | 33
+
0
-

achtan
super, v BasePresenteru jsem nastavil
public $autoCanonicalize = false;
a zdá se, že zafungovalo :) taktéž díky!

enumag
Člen | 2118
+
0
-

To bylo to co jsem navrhoval před půlrokem. :-D

sKopheK
Člen | 207
+
0
-

Ja bych to taky z odkazu na prazdny radek v kodu nepochopil :)