js wyiswyg a 404 error handling

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

Chtěl bych se zeptat diskutujících jak řeší js wysiwyg, např. TinyMCE. Všechny tyto knihovny potřebují kromě js a obrázků (které jsou v .htaccess povoleny – nebyl by problém je tedy prostě nahrát do document_rootu a v html pouze odkázat na .js soubor) i php soubory, jenže ty výchozí .htaccess nepovolí. Nabízí se řešení do toho .htaccessudocument_rootu přidat příponu .php, ale to se potom může stát, že pokud člověk zadá do adresy např. http://www.web.cz/neexistujici.php, tak se zobrazí klasická 404 chyba Apache, nikoli Nette Error handler, což je škoda. Jak tedy řešit vkládání takovýchto částí do projektu? → Vyřešeno.

A tak mě tak napadá, pokud se normálně u projektu psaném v Nette uživatel pokusí otevřít neexistující obrázek – např. http://www.web.cz/neexistujici.jpg, pak se mu zobrazí výchozí 404 chyba Apache, nikoli Error handler Nette – je to žádoucí? Myslím, že ne. Dá se to nějak jednoduše obejít?

Napadá mě řešení, kdy vezmu nějakou fiktivní adresu, která bude normálně parsovaná přes Nette, ale nebude k ní existovat Presenter, vyhodí se tedy 404 chyba – ale ta Nettí, a tuto fiktivní adresu bych uvedl do .htaccess osuboru v definici 404 chyby (ErrorDocument 404 /neexistujiciPresenter toto by bylo uvedeno v souboru .htaccess). Tudíž by se přestala zobrazovat výchozí Apache 404 chyba, a byla nahrazena tou Nettí.

Řeší to někdo jinak? Řeší to někdo? :)

Editoval Tomik (15. 4. 2009 0:00)

Tomik
Nette Evangelist | 485
+
0
-

Ještě abych uvedl příklad toho problému s Error handlingem, porovnejte:

a

Honza Marek
Člen | 1664
+
0
-

Vždyť snad obyčejné php soubory normálně fungujou, ne? Ona je v tom běžném htaccessu nějaká podmínka na to, jestli ten soubor existuje přece.

Tomik
Nette Evangelist | 485
+
0
-

Honza M. napsal(a):

Vždyť snad obyčejné php soubory normálně fungujou, ne? Ona je v tom běžném htaccessu nějaká podmínka na to, jestli ten soubor existuje přece.

Aha, máš pravdu, co se týče .htaccessu, nikdy jsem s ním nebyl velký kamarád, i před Nette jsem vše radějí řešil redirectem na index.php a rozparsováním URI ručně.. :)

Díky, první problém s tím WYSIWYGem je vyřešen, zbyvá tedy jen problém s Apache error zprávou, pokud se pokusím otevřít neexistující obrázek, ale to se dá poměrně jednoduše vyřešit pomocí toho mého řešení, co jsem popsal výše… Jen mě zajímalo jestli není nějaký lepší, reps. čistčí řešení.

Editoval Tomik (15. 4. 2009 0:00)

nAS
Člen | 277
+
0
-

A tak mě tak napadá, pokud se normálně u projektu psaném v Nette uživatel pokusí otevřít neexistující obrázek – např. http://www.web.cz/neexistujici.jpg, pak se mu zobrazí výchozí 404 chyba Apache, nikoli Error handler Nette – je to žádoucí? Myslím, že ne. Dá se to nějak jednoduše obejít?

Já myslím, že to žádoucí je. Požadavek na obrázek je obvykle v tagu <img />, takže uživatel stejně nic neuvidí a alespoň se nebude přenášet zbytečně moc dat a ušetří se procesorový čas.
Pokud by ti to výchozí chování nevyhovovalo, tak stačí z .htaccess souboru upravit pravidlo, které to zařizuje, takže:

	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]

změnit na:

	RewriteRule .* index.php [L]

Napadá mě řešení, kdy vezmu nějakou fiktivní adresu, která bude normálně parsovaná přes Nette, ale nebude k ní existovat Presenter, vyhodí se tedy 404 chyba – ale ta Nettí, a tuto fiktivní adresu bych uvedl do .htaccess osuboru v definici 404 chyby (ErrorDocument 404 /neexistujiciPresenter toto by bylo uvedeno v souboru .htaccess). Tudíž by se přestala zobrazovat výchozí Apache 404 chyba, a byla nahrazena tou Nettí.

Hehe :) To je dobře překombinovaný.

Editoval nAS (15. 4. 2009 2:47)

_Martin_
Generous Backer | 679
+
0
-

nAS napsal(a):

Já myslím, že to žádoucí je. Požadavek na obrázek je obvykle v tagu <img />, takže uživatel stejně nic neuvidí a alespoň se nebude přenášet zbytečně moc dat a ušetří se procesorový čas.

Přesně. Jak říkal Davida na školení, kvůli chybějícím (či špatně odkázaným) obrázkům (stylům,…) nemá cenu načítat celý framework – Apachí hláška má menší režii. Samozřejmě, úprava .htaccessu je možná, nejde o žádné „vynucované chování“.

Tomik
Nette Evangelist | 485
+
0
-

Heh, mate samozrejme pravdu, to tema jsem psal vcera docel pozde, tak me prosim omluvte. :)

Je pravda, ze to moje reseni je naprosto prekombinovane, to souvisi s tim, ze se moc nekamaradim s .htaccess. Samozrejme odstraneni toho pravidla je spravny a vyrazne lepsi zpusob reseni. :)

Jinak u obrazku to asi opravdu zadouci je. Ale napr. takovy pdf dokument by si uz mozna zaslouzil nejakou hezkou a vysvetlujici 404 stranku, coz se da ale vyresit odstranenim pripony pdf z toho pravidla.

Tak dekuji, vse je jiz vyreseno. Vlastne oba problem byly jen „pseudoproblemy“ zpusobene moji neznalosti problematiky .htaccess, tak se omlouvam, ze jsem otravoval. :)

Jinak pekny den!