Automatické směrování na jazykovou verzi aplikace
- maarlin
- Člen | 207
Mám nastavené v bootstrapu routy takto:
$router[] = new Route('index.php', array(
'presenter' => 'Homepage',
'action' => 'list',
'lang' => $lang
), Route::ONE_WAY);
$router[] = new Route('<lang cs|en>', array(
'presenter' => 'Homepage',
'action' => 'list'
));
A potřebuji, aby request na kořen webu /
směroval via
301 rovnou na /cs
nebo /en
– tedy přímo na
jazykovou verzi webu. Dá se to udělat nějak elegantně pomocí rout?
Aktuálně ty routy fungují, ale musím manuálně zadat adresu
/cs
nebo /en
. Na /
tvrdí, že nematchnul
žádné routy, což chápu, protože povinný parametr lang není
v requestu.
- Jerry123456789
- Člen | 37
<?php
$router[] = new Route('[<lang cs|en>]', array(
'presenter' => 'Homepage',
'action' => 'list',
'lang' => 'en',
));
?>
//snad…
Editoval Jerry123456789 (2. 8. 2010 10:39)
- maarlin
- Člen | 207
Jerry123456789 napsal(a):
<?php $router[] = new Route('[<lang cs|en>]', array( 'presenter' => 'Homepage', 'action' => 'list', 'lang' => 'en', )); ?>
//snad…
Ta routa se sice takto matchne, ale zůstane na kořeni webu /
,
já právě potřebuji aby to bylo přesměrováno na /cs
nebo
/en
.
- BigCharlie
- Člen | 283
tady si asi musíš vypomoci routou, která bude pouze přesměrovávat z / na konkrétní jazyk, tj. něco jako:
$router[] = new Route('<? index\.php|>', array(
'lang' => 'cs',
'presenter' => 'Homepage',
'action' => 'list',
), Route::ONE_WAY);
Je jednosměrná, takže ti to nedovolí vygenerovat link bez jazyka. Zafungovalo?
- maarlin
- Člen | 207
BigCharlie napsal(a):
tady si asi musíš vypomoci routou, která bude pouze přesměrovávat z / na konkrétní jazyk, tj. něco jako:
$router[] = new Route('<? index\.php|>', array( 'lang' => 'cs', 'presenter' => 'Homepage', 'action' => 'list', ), Route::ONE_WAY);
Je jednosměrná, takže ti to nedovolí vygenerovat link bez jazyka. Zafungovalo?
Ano, to je přesně ono, díky BigCharlie! :-)