Autor | Zpráva | ||
---|---|---|---|
Mastodont Profil |
#1 · Zasláno: 14. 3. 2009, 17:43:52
Dělám právě na trochu složitějším systému routování, kde může být různé pořadí částí a přemýšlím, jak zrychlit analýzu. Napadlo mě zařadit názvy částí přímo do adresy podobně jako u klasických GET parametrů:
/lang.en/module.articles/view.summary Viděl někdo něco podobného v praxi? |
||
Majkl578 Profil |
#2 · Zasláno: 14. 3. 2009, 17:46:29
Mastodont
myslim, ze to neni spatne reseni, jen ten nazev modulu (treba "lang.") bych tam nedaval, to jde preci resit pres htaccess a bude to hezci, porovnej sam: /en/articles/summary |
||
Jan Tvrdík Profil |
#3 · Zasláno: 14. 3. 2009, 17:52:51
Mastodont:
Pokud máš hodně času na čtení, tak se můžeš podívat na Nette\Application\Route, které s tím nemá problém. |
||
Mastodont Profil |
#4 · Zasláno: 14. 3. 2009, 17:56:18 · Upravil/a: Mastodont
Majkl578
Jenže zrovna ten jazyk chci dát jako volitelný, a to už by řešení přes .htaccess bylo nad moje síly. Parsování budu dělat až v aplikaci. (Vlastně i ten modul bude volitelný s výchozí hodnotou danou v konfiguraci.) |
||
Majkl578 Profil |
#5 · Zasláno: 14. 3. 2009, 18:01:03 · Upravil/a: Majkl578
Mastodont
to preci nevadi, muzes to mit promenlive, treba nejak takto (nejsem si jist zda zrovna toto pujde, nezkousel jsem, jen napsal): RewriteRule ^([[:alnum:]\-\.]+)/([[:alnum:]\-\.]+)/([[:alnum:]\-\.]+)([/]?)$ ./app.php?lang=$1&module=$2&action=$3 |
||
Mastodont Profil |
#6 · Zasláno: 14. 3. 2009, 18:09:13 · Upravil/a: Mastodont
Dejme tomu, že adresy budou vypadat například takto, včetně statických:
www.site.cz/lang.cz/module.clanky/view.prehled www.site.cz/module.clanky/id.15 // výchozí jazyk www.site.cz/id.15 // výchozí jazyk a modul www.site.cz/prihlasit // statická, modul a akce napevno v konfiguraci To tedy parsovat v htaccess neumím. ("prihlasit" by mělo samozřejmě jazykové varianty) |
||
srigi Profil |
#7 · Zasláno: 14. 3. 2009, 18:28:27
Mastodont
Skus pozriet na moje routovanie - link. |
||
Mastodont Profil |
#8 · Zasláno: 14. 3. 2009, 20:13:07 · Upravil/a: Mastodont
srigi
Děláš to v zásadě úplně stejně jako já, jen tam nikde nevidím statické routy. |
||
srigi Profil |
#9 · Zasláno: 14. 3. 2009, 21:24:15
Mastodont
moje routovanie je silno staticke, URL ma tvar: http://www.example.com/[lang]/controller/actiom/[param1]/[value1]/[param2]/[value2] hodnoty v hranatych zatvorkach su nepovinne. Routy nie su nikde explicitne specifikovane, routovanie je natvrdo "zadrotovane" do parseUrl(). |
||
Mastodont Profil |
#10 · Zasláno: 14. 3. 2009, 21:39:04
srigi
Statická routa obsahuje pevně daný řetězec, který není nutné vyhodnocovat: http://www.example.com/author/:username // přehled článků od určitého autora Nebo to jsou zkrácené URL, které jsou fixně mapovány a není nutné je vyhodnocovat postupně: http://www.example.com/login // controller = user, action = login http://www.example.com/top // controller = articles, action = view, limit = 10 |
||
Časová prodleva: 15 let
|
0