reprezentace jmena presenteru v URL
- crempa
- Člen | 198
Prisel jsem na to, ze napr. presenter jmena ahojNette je dostupny i pres alternativni URL ahoj-nette. Zajimalo by me, zda a jak lze toto chovani nastavit, pripadne jake takove aliasy jeste funguji a zda to neni problem napr. pri indexaci, kdyz se stejny obsah indexuje na dvou ruznych URL…
V routeru mam jen jedno pravidlo
<?php
$router = Environment::getApplication()->getRouter();
$router[] = new Route('<presenter>/<view>', array(
'presenter' => 'Status',
'view' => 'default',
),IRouter::SECURED);
?>
PS: lze nejak docilit kombinace IRouter::SECURED s IRouter::ONE_WAY ?
- crempa
- Člen | 198
Diky, uz me to taky doslo :-)
Jinak k tomu predchozimu bodu, ono tu pomlcku lze dat kamkoli do jmena
presenteru, Nette ji vicemene ignoruje. Neco me unika nebo to je chtene chovani?
Potrebuju zabezpecit jeden presenter klientskym certifikatem na urovni Apache
skrze <LocationMatch>
a tato featura me to znacne
komplikuje..
- _Martin_
- Generous Backer | 679
crempa napsal(a):
Prisel jsem na to, ze napr. presenter jmena ahojNette je dostupny i pres alternativni URL ahoj-nette. Zajimalo by me, zda a jak lze toto chovani nastavit, pripadne jake takove aliasy jeste funguji a zda to neni problem napr. pri indexaci, kdyz se stejny obsah indexuje na dvou ruznych URL…
Ono spíše presenter je dostupný pod více adresami, ale Nette automaticky
přesměruje na kanonickou adresu (tj. v tomto případě na /ahoj-nette/).
Tohle chování mají na starosti filtry Rout, konkrétně
metody path2presenter
a presenter2path
(viz. zdrojový
kód).
- crempa
- Člen | 198
tak jsem zkousel neco jako
<?php
$route = new Route('<presenter>/<view>', array(
'presenter' => 'Status',
'view' => 'default',
),IRouter::SECURED);
$route->setStyleProperty('presenter', Route::PATTERN, '[a-z][a-z0-9.]*');
$router[] = $route;
?>
a nezda se ze by to slo, pokud prepisu ten regular primo ve zdrojacich tak to funguje, co delam spatne netusis?
- Jan Tvrdík
- Nette guru | 2595
Takto?
Router::setStyleProperty('presenter', Route::PATTERN, '[a-z][a-z0-9.]*');
$router[] = new Route('<presenter>/<view>', array(
'presenter' => 'Status',
'view' => 'default',
), IRouter::SECURED);