pomoc s routerem staré na nové

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

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
+
0
-

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
+
0
-

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