Ako vypnúť automatické prepísanie URL v poli adresy v prehliadačí?
- Smokie222
- Člen | 12
Dobrý deň,
používam Nette Framework v čo najväčšej možnej miere, ale nepoužívam routovanie a ani nenechávam framework aby sám vytváral adresy v odkazoch, pretože mi to takto jednoducho viac vyhovuje. Routovanie si robím sám v .htaccess.
Ale keď si napíšem odkaz s adresou stranka.com/presenter/action/1, tak v odkaze to vyzerá presne tak ako chcem, ale keď na to kliknem, tak v poli adresy v prehliadači sa mi objaví pôvodný tvar, ktorý vytvára Nette s otáznikmi a tak ďalej. Najprv som myslel, že to robí .htaccess, ale potom ako som zistil, že tvar v .htaccess sa odlišuje od tvaru v poli adresy, tak mi bolo jasne, že to tým nebude.
Dá sa v Nette niekde vypnúť aby to nerobil? Aby som po kliknutí na odkaz mal v poli adresy v prehliadači to isté ako je v odkaze? Teda stranka.com/presenter/action/1 a nie stranka.com?index.php?presenter=presenter&action=action&id=1 alebo tak nejak podobne.
Ale naozaj vás prosím neodkazujte ma na routovanie v Nette. Nerozumeli sme si a nemam čas s tým strácať čas a hľadať ktorá routa mi teraz začala ovplyvňovať ostatné routy a prečo mi to celé zrazu nejde, keď si cesty viem napísať aj sám.
Ďakujem.
- toka
- Člen | 253
Jak chceš Nette donutit, aby ti vytvářelo odkazy podle pravidel v htaccess, když mu to nepovíš „vnitřně“ přes routy? Nette neví, co máš v htaccess a tím pádem ti není schopné v šablonách generovat odkazy podle pravidel v htaccess uvedených.
Pokud se mýlím, opravte mne někdo.
Editoval toka (20. 8. 2010 11:03)
- Panda
- Člen | 569
class BasePresenter
{
public $autoCanonicalize = FALSE;
// ...
}
Ale přijdeš tím o kanonizaci.
Jen tak mimochodem, nic Tě nenutí používat routování v Nette, můžeš si klidně i napsat úplně vlastní routy.
- Smokie222
- Člen | 12
Ale ja nechcem aby mi generovalo odkazy.
Ja mám odkazy napísané ručne.
Možno len ja zle chápem celý proces akým funguje .htaccess a veci s tým
spojené.
Ale ja to mám urobené tak, že mám ručne napísaný odkaz, bez toho aby do
toho akýmkoľvek spôsobom zasahovalo Nette. Len proste čisto, napríklad
<a href="stranka.com/clanok/nazov/1/">
A v .htaccess mám napísané
RewriteRule ^clanok/[0-9a-z]+/([0-9]+)/$ /index.php?action=Clanok&presenter=Default&id=1
Ale keď kliknem na tento odkaz, tak sa síce dostanem tam kde chcem, ale adresa v prehliadači, v tom poli adries, je
http://stranka.com?presenter=Default&action=Clanok&id=1
namiesto
http://stranka.com/clanok/nazov/1/
Prosím všimnite si, že action má prehodenú pozíciu s presenterom.
- toka
- Člen | 253
Smokie222 napsal(a):
Ale ja nechcem aby mi generovalo odkazy.
Ja mám odkazy napísané ručne.
Možno len ja zle chápem celý proces akým funguje .htaccess a veci s tým spojené.
Ale ja to mám urobené tak, že mám ručne napísaný odkaz, bez toho aby do toho akýmkoľvek spôsobom zasahovalo Nette. Len proste čisto, napríklad
<a href="stranka.com/clanok/nazov/1/">
A v .htaccess mám napísané
RewriteRule ^clanok/[0-9a-z]+/([0-9]+)/$ /index.php?action=Clanok&presenter=Default&id=1
Ale keď kliknem na tento odkaz, tak sa síce dostanem tam kde chcem, ale adresa v prehliadači, v tom poli adries, je
http://stranka.com?presenter=Default&action=Clanok&id=1
namiesto
http://stranka.com/clanok/nazov/1/
Prosím všimnite si, že action má prehodenú pozíciu s presenterom.
Tak to pak ano, jak píše Panda. Nenapadlo mne, že si v šablonách děláš i odkazy ručně.
- Smokie222
- Člen | 12
No ano, asi som sa zle vyjadril v prvom poste. Skúšal som to aj
s routami, ale zarazilo ma, že sa všetky routy navzájom ovplyvňujú a to
spôsobovalo veľké problémy, pretože moje odkazy boli dosť rozmanité. Tak
som to po dvoch dňoch nechal tak a radšej odkazy písal ručne.
Neviem prečo to nie je riešené tak ako v .htaccess, kde každá „routa“
bojuje len sama za seba a zvyšok si nevšíma.
- Panda
- Člen | 569
Routy se navzájem neovlivňují, každá se vykonává nezávisle. Celkem
logicky pak ale záleží na jejich pořadí, protože MultiRouter
prostě jede polem rout a první, která sedí, se použije. Stačí se pak jen
držet pravidla „obecné routy na konec“ a vše je bez problémů.
Pokud se nepletu, tak velmi podobně pracuje i mod_rewrite
.
- Panda
- Člen | 569
No, killer feature to právě je, kompletní systém odkazů ovlivňuješ z jednoho místa a v momentě, kdy se rozhodneš něco trochu změnit, nemusíš procházet 50 šablon. No ale to je jedno, proti gustu… :-)
Jinak by bylo fajn, kdyby jsi měl konkrétnější ukázku toho, co Ti přestalo fungovat, můžeme to opravit/vysvětlit a poslouží to dalším lidem, co budou mít podobný problém.
- Ondřej Mirtes
- Člen | 1536
Určitě bude jednodušší, když vyřešíš ten problém s routami, než abys to takhle prasil. Obcházíš tím jednu ze zásadních killer featur frameworku a přiděláváš si spoustu práce.
- Smokie222
- Člen | 12
Ondřej Mirtes napsal(a):
Určitě bude jednodušší, když vyřešíš ten problém s routami, než abys to takhle prasil. Obcházíš tím jednu ze zásadních killer featur frameworku a přiděláváš si spoustu práce.
Vieš čo, mam pocit, že to záleží od uhľa pohľadu. Skôr mám pocit, že tej práce bez rout mam menej. Veď odkaz musím napísať tak či tak, iba ho napíšem iným spôsobom (a veľmi sa mi nestáva, že by som ich potom niekedy menil) a masku v .htaccess musím taktiež napísať. Bez rout mám len o starosť menej, pretože nemusím bojovať s routami a testovať každý jeden odkaz, či náhodou som si novou routou neodstrelil niektoré staršie.
Ale je to vec názoru. Mne sa ľahšie robí bez rout, nikomu tento spôsob nevnucujem. A popravde nevidím dôvod, prečo by to malo byť „prasenie“. Ani tým nespomaľujem výkon (práveže zvyšujem, pretože je to statické) a ani si tým nevytváram bezpečnostnú dieru. Tak aké „prasenie“?