pomoc s routerem staré na nové
- tomfz6
- Člen | 32
Ahoj všem prosím o radu nevím jak mám udělat přesměrovaní starých URL adres na nové
takto vypadá můj router třeba na kategorie
<?php
$router[] = new Route('<lang=cs>/kategorie/<CatId>', array(
'CatId' => array(
Route::FILTER_IN => function ($CatId) use ($db) {
if (is_numeric($CatId)) {
return $CatId;
} else {
return $db->table('CategoriesTreeSlug')->where('CatSluName', $CatId)->fetch()->CatSluId;
}
},
Route::FILTER_OUT => function ($CatId) use ($db) {
if (!is_numeric($CatId)) {
return $CatId;
} else {
return $db->table('CategoriesTreeSlug')->where('CatSluId', $CatId)->fetch()->CatSluName;
}
}
),
'presenter' => 'Product',
'action' => 'list'
));
?>
generuje třeba tento odkaz ../cs/kategorie/pocitace
stara URL vypadá takto /Produkty/1-pocitace.html
pls poraďte jak upravit / naspsat router aby se z těch starých se to přesměrovalo na nové
ja se stím mrcasím už nějakou dobu a nemužu na to přijít
Dík moc
Editoval tomfz6 (10. 2. 2016 11:07)
- Oli
- Člen | 1215
No hlavní předpoklad je, že ti budou sedět data. Například že produkty
⇒ kategorie, 1 ⇒ id od slugu pocitace v databazi, pocitace.html ⇒
pocitace. Pak to nebude problém. Používá se na to ONE_WAY.
Pak to bude vypdat stejně jako to máš nahoře, jen ti tam
<catId>
bude generovat něco jako id-slug
místo
slug
a místo kategorie
dáš
produkty
.
- tomfz6
- Člen | 32
něco jsem vyplodil teoreticky by to mohlo stačit takto ne?
<?php
$router[] = new Route('/Produkty/<CatId>', array(
'CatId' => array(
Route::FILTER_IN => function ($CatId) use ($db) {
$slug= explode("-",$CatId);
return $slug[0];
}
),
'presenter' => 'Product',
'action' => 'list'
), Route::ONE_WAY);
?>
zatím vypadá že to funguje dobře,hlavně mě jde o to aby to bylo přesměrované 301.
Dá se to nějak poznat z laděnky?
Dík moc