Dva tvary URL pro jeden presenter

před rokem

Xantes
Člen | 28
+
0
-

Ahoj,
jak nastavit routu, aby jsem mohl mít tyto masky URL:
<nepovinna-cast>/<slug>
<slug>
pro jeden presenter?

Mám routu ve tvaru: [<nepovinna-cast>/]<slug> a to mi funguje tak, že mi to bere oba tvary, což potřebuji. Potřebuji však mít výchozí tu zkrácenou podobu a v určité situaci přesměrovat na tu delší podobu, což dělám v presenteru a zacyklí se mi to, protože předpokládám, že router mi to přesměruje zpět na tu krátkou podobu.

Jak to jednoduše nastavit?

před rokem

Felix
Nette Core | 869
+
0
-

Zkus pouzit Route::ONE_WAY – https://doc.nette.org/cs/2.4/routing#….

$router[] = new Route('<nepovinna-cast>/<slug>', 'X:y', Route::ONE_WAY);
$router[] = new Route('<slug>', 'X:y');

před rokem

Xantes
Člen | 28
+
0
-

To mi způsobí to, že mi automaticky bude přesměrovávat na tu kratší variantu. Já potřebuji, aby byly funkční obě a v presenteru jsem rozhodl na kterou přesměruji. Ideálně, aby byla výchozí ta krátká varianta a v případě potřeby, v některých případech jsem přesměroval na tu delší podobu.

před rokem

Felix
Nette Core | 869
+
0
-

Aha, spatne jsem to pochopil. No v tom pripade definuj 2 routy a v presenteru vypni autoCanonicalize.

https://api.nette.org/…ter.php.html#…

před rokem

Zuben45
Backer | 270
+
0
-

Felix napsal(a):

Aha, spatne jsem to pochopil. No v tom pripade definuj 2 routy a v presenteru vypni autoCanonicalize.

https://api.nette.org/…ter.php.html#…

Jen doplním, toto může vést k rozdělení seo ranku ;)

před rokem

Xantes
Člen | 28
+
0
-

@Felix Díky, tohle funguje.
@Zuben45 Díky za připomínku, ale nemělo by se mě to týkat. Sice přijmu obě varianty, ale vždy přesměruji něco na delší tvar a něco na kratší, ale vždy jen na jeden tvar.