Diskuze: Laravel routing
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
nechápem ako je pre toto podstatné ako vyzerá tvoja DB
podľa typu výnimky je jasné, že nedokázalo spárovať URL. Skúsil by som odstrániť to lomítko na začiatku, a skontroloval či metóda index berie nejaký parameter (toto je len taký nástrel). Z tých informácií čo si dal neviem inak určiť príčinu tej výnimky.
Zadny z těchto argumentu by tuto chybu nezpusobyl. Pri registrovani jakekoli routy se z url odstranuje lomitko na zacatku i na konci funkci trim. Tuto exception vyhazuje routecollection pokud nenajde routu, ktera by odpovidala requestu (musi se shodovat host, metoda, url a protokol). Radsi at posle zbytek scriptu s definici rout, treba ma definovanou skupinu s prefixem a jen si nevsiml
tiež som si myslel, ale nechcelo sa mi to overovať tak som skúsil lebo aj keď má otázka 20 či koľko riadkov tak 15 je úplne nepodstatných a z tých posledných 5 sa bohviečo nedá zistiť
Tak som to napokon vyriešil... zistil som, že nieže nefunguje tento route, ktorý som tu dal, ale nefungoval vlastne žiaden route okrem "/". Ak som tam vložil index.php (mojprojekt.sk/public/index.php/page/kakanec) tak mi to všetko šlo tak, ako som potreboval.
Problém bol v htaccess...
Pokud mas vice htaccessu po ceste od DirectoryRoot, ktere uplatnuji RedirectRule, tak je problem. Htaccess nemeni puvodni REQUEST_URI, ale do $_SERVER pridava REDIRECT_URL, s kterou Laravel (ani Symfony, protoze trida Request je jen nadstavba) nepocita a nebere v potaz. ! htaccess v publicu vubec nevadi, vadi htaccessy nad tim !. Pokud vyvijis na localu, resenim je virtualhost v apachi (pokud jedes na nem), na hostingu se to resi hure. Jedna varianta je v indexu prepsat pred volanim Request::capture() prepsat $_SERVER['REQUEST_URI'] prave na $_SERVER['REDIRECT_URL'], nebo domena tretiho radu, pokud ti to umoznuji.
Pokud mas vice htaccessu po ceste od DirectoryRoot, ktere uplatnuji RedirectRule, tak je problem. Htaccess nemeni puvodni REQUEST_URI, ale do $_SERVER pridava REDIRECT_URL, s kterou Laravel (ani Symfony, protoze trida Request je jen nadstavba) nepocita a nebere v potaz. ! htaccess v publicu vubec nevadi, vadi htaccessy nad tim !. Pokud vyvijis na localu, resenim je virtualhost v apachi (pokud jedes na nem), na hostingu se to resi hure. Jedna varianta je v indexu prepsat pred volanim Request::capture() prepsat $_SERVER['REQUEST_URI'] prave na $_SERVER['REDIRECT_URL'], nebo domena tretiho radu, pokud ti to umoznuji.
Toto je samozrejme problem pouze, pokud request volas ne s uplnou cestou od rootu. Pokud to zadas celou cestou, tak neni problem, protoze vse je soucasti Request_URI a pri procesu zjistovani relativni cesty (te, kterou opravdu zadas) se to uz spravne vyresi. On to dela tak, ze mas SCRIPT_NAME, coz je url cesta ke sriptu, ktery se spustil a hleda schodu mezi ni a REQUEST_URI. Takze pokud REQUST_URI nema stejny zaklad jako SCRIPT_NAME, tak se to spravne nenapasuje.
nebol skôr problém v tom, že laravel defaulte požaduje URL vo formáte domena.com/public/cokolvek? Proste to public tam treba stále dávať, je to kvôli bezpečnosti (aj keď samozrejme dá sa mať url aj bez public)
Robím v Laraveli nejaký ten rok, ťažko povedať čo sa považuje za to byť odborník. Čiže môžeš napísať mne do správy akurát si myslím, že práve na to je fórum, aby ti vedeli odpovedať viacerí resp. prípadne aby tie otázky pomohli aj niekomu inému.
Zobrazeno 10 zpráv z 10.