Diskuze: Pekné url hádžu 404 / Router nič nerobí
Člen
Zobrazeno 12 zpráv z 12.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
Tak první věc, kterou vidím je
if (!$post) {
, protože pokud tak koukám, tak proměnná $post je vždy
null, jelikož není nikde deklarovaná, tudíž ta podmínka vždycky
vyhodí 404. Jedinou záhadou tedy zůstává, jak to, že to ze
SimpleRouter funguje. 
Hop, to sa mi tam pred chvílou priludilo, problem to ale neriesi.
Cache cistim.
Prečo odkazuješ na HomepagePresenter presenter ked router chces nastaviť u NewsPresenter ?
To udává adresu, kam se přesměruje výchozí stránka tj. v tomto
konkrétním případě /localhost/example/. V tom problém určitě
není. 
Nejdřív začnu trochu obecně. Asi nejlepší způsob, jak debuggovat
routování URL v Nette je začít u laděnky (Tracy) pro konkrétní adresu. Ta
totiž přesně udává, jak se ona konkrétní adresa aktuálně routuje, což
člověku samo o sobě dost napoví. 
A teď ke konkrétní situaci. Já osobně se domnívám, že tady je problém přímo v té URL, protože SimpleRouter, bere tu adresu trochu jinak (obecněji), zato RouteList je o dost striktnější. Nejlepší bude vysvětlení na konkrétním případu:

Jestli je to opravdu tento problém otestuješ jednoduše tak, že tu routu upravíš na
example/<presenter>/<action>[/<id>]
a ono to začne fungovat.
Potom samozřejmě na serveru nic jako "example" nebude, takže se to
musí ještě trochu odladit, ale pro otestování a pochopení problému tohle
stačí. 
Doufám, že jsem to vyjádřil dost srozumitelně, když tak sem pak napiš,
jak to dopadlo a případné dotazy. 
Tracy k dispozicii na tej chybnej stranke nemam, 404 je priamo od Apache.
Tak ale pravděpodobně není chyba ve směrování Nette, ale ve
směrování Apache (pořád nevysvětluje funkčnost SimpleRouter
) nebo máš špatně nastavené
odchytávání chyb v Nette. Každopádně, když není k dispozici laděnka a
je to chyba od Apache, je potřeba jít ručně po stopách toho směrování.
Normálně bych Tě nechal hodit sem výpis směrování toho požadavku (např.
pomocí tracepath), ale tady si troufnu to odhadnout a dám sem seznam
věcí, které by to chtělo zkontrolovat:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ www/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^www/
RewriteRule ^(.*)$ www/$1
</IfModule>
Je tohle všechno v pořádku? 
v zlozke example nemam ziadny .htaccess, nette to napriek tomu do www
smerovat zvlada.
Vo www je tento:
# Apache configuration file (see httpd.apache.org/docs/current/mod/quickreference.html)
# disable directory listing
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# enable cool URL
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /var/www/html/example/www/
# prevents files starting with dot to be viewed by browser
RewriteRule /\.|^\. - [F]
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$ index.php [L]
</IfModule>
# enable gzip compression
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml
</IfModule>
</IfModule>
Jak Nette to směrovat zvládá? Vždyť dostáváš 404 od Apache, takže
zvládá možná něco, ale rozhodně je tam něco špatně. 
Zobrazeno 12 zpráv z 12.