Ako najlepšie presmerovať veľký počet starých liniek?

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

Zdravím,
aký je odporúčaný postup (best practise) ak chcem presmerovať veľa starých liniek na nové? Je ich niekoľko desiatok (vyše 100) a nemajú žiaden špeciálny formát a pre každú treba urobiť vlastné pravidlo. Čítal som, že veľa route spomaľuje aplikáciu.
napr:

stará linka ->  nová linka
/aaaaa      ->   /k-4/....
/bbbbb      ->   /k-12/....
/ccccc      ->   /k-45/....
...atď.

nové linky mi už správne routujú, ešte tam potrebujem pridať, aby sa tie staré presmerovávali na nové (aby sa zmenila aj linka).

je lepšie to robiť cez apache mod_rewrite alebo redirect? Alebo pre každú linku definovať new Route v boostrape? Nebude to spomaľovať? Alebo a dá definovať nejaká „prekladová tabuľka“ pre route?

Editoval gawan (7. 4. 2010 13:09)

SyXcz
Člen | 75
+
0
-

mno jen takový nápad, jak bych to udělal já…

hledal jsem na fóru jestli je v nějaké proměnné url požadavku který se původně žádalo (tvůj původní soubor), ale nenašel… ale určitě je možnost někde url požadavek zjistit třeba pomoci http request

pak by sis jen udělal v ErrorPresenteru redirecty na požadovaný Presentery

Ondřej Mirtes
Člen | 1536
+
0
-

Mno, asi bych napsal vlastní jednoduchý router, kam bych tuto rozhodovací logiku ze starého webu přepsal.

Tharos
Člen | 1030
+
0
-

No a není řešit tohle přes framework zbytečný overhead? Co třeba prostě použít mod_alias a pár pravidel pro něj v .htaccessu :)?

Redirect 301 /stara-stranka.html http://example.org/nova-stranka
Redirect 301 /stara-stranka2.html http://example.org/nova-stranka2
...

Takhle to alespoň řeším já. Přijde mi zbytečné zatěžovat framework tím, že se zachovávají nějaké zpětně kompatibilní linky, když to lze vyřešit elegantně a přímo na to určenými moduly na úrovni serveru.

Editoval Tharos (7. 4. 2010 20:52)

gawan
Člen | 110
+
0
-

áno, už aj ja som sa dostal k tomuto riešeniu mod_alias a .htaccess, som rád, že sme sa zhodli ;-) je to asi najlepšie riešenie

Ola
Člen | 385
+
0
-

Dokud nemáte 1000 článků na blogu a nepotřebujete je přesměrovat např z example.com/clanek/blablabla na example.com/blablabla. Pokud máš starý linky v DB tak toho využij a neduplikuj to v htaccess. Nejlepší řešení asi je, jak Ondra psal, vlastní router.

PS: jak při přidávání nový stránky ověříš, že uživatel nevytváří stránku se stejným url které je přesměrováno?

Editoval Ola (8. 4. 2010 6:56)

gawan
Člen | 110
+
0
-

Ola napsal(a):

Dokud nemáte 1000 článků na blogu a nepotřebujete je přesměrovat např z example.com/clanek/blablabla na example.com/blablabla. Pokud máš starý linky v DB tak toho využij a neduplikuj to v htaccess.

žiaľ nemám tie linky v DB a boli robené rôznym prasením starého kódu (podľa potrieb SEO odborníkov ;-), a ten kód už teraz ani neexistuje, takže teraz len zbieram staré odkazy z iných webov cez google a webmasters tools… a postupne ich tam pridávam

Nejlepší řešení asi je, jak Ondra psal, vlastní router.

mohlo by to byť, ale asi je to pre mňa zbytočné zložité ak mám okolo 100 liniek. A okrem toho som raz aj skúšal robiť vlastný router, ale nejako som to nepochopil, zdalo sa mi to zložité…

PS: jak při přidávání nový stránky ověříš, že uživatel nevytváří stránku se stejným url které je přesměrováno?

pretože nové linky majú formát: „d-$id/blabla-bla…“ a predtým sa idčka v linke nepoužívali