.htacces, mod_rewrite a zapeklity problem

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

Ahoj vsem, mam zapeklity problem.

Protoze se aplikace testuji, vetsinou na nejakem serveru testovacim v podadresari, je nastavena base_url. A protoze ve spouste pripadu neni umoznen pristup do nadrazeneho adresare tak, aby byl splnen skeleton nette s document_root, musi byt adresar app prave v onom document_root spolecne s ostatnimi soubory. Zde ale nastava problem v tom, ze potom v mod_rewrite nemohu dat prednost podmince na filesystem a musim si sam rict, ktere adresare chci „zverejnit“.

jedna cesta je ochrana pres .htaccess soubory (deny from all) v adresarich, ktere zverejnit nechci, ale pak nastava dalsi problem. Nechci zverejnit adresar app, ale chci, abych mel controller s nazvem app (chci mit app v URI). A nechci aby se mi zobrazil error 403 forbidden. Cili tudy cesta nevede.

Reseni je napr. takoveto: http://pastebin.com/Z88RM8CD
V uvedenem prikladu je videt, ze chci zverejnit jen adresare „css“ a „js“ v korenovem (document_root) adresari. Proto tam je na zacatku podminky zobacek. Problem je, ze kdyz mam cely dokument v podadresari a cela cesta je: http://muj.test/<RewriteBase>/app/ tak aby tento priklad spravne fungoval, musi se uvadet prave RewriteBase.

No abych se dostal k tomu, co potrebuju, tak to je takove reseni, kde neni podminka na filesystem (takove ty RewriteCond %{REQUEST_FILENAME} !-f ) a zaroven se nemusi pouzivat RewriteBase. Abych nemusel pokazde upravovat .htaccess soubor, kdyz presouvam web do jineho podadresare nebo na ostry server, kde podadresar neni. Nejlepsi, ukazte se :)

arron
Člen | 464
+
0
-

Skeleton nette ale prece muze byt splneny:-) Ne teda uplne (document_root bude porad tom hlavni adresari), ale jinak se tam klidne necha nahrat skeleton struktura a staci jenom presunout index.php a prislusny .htaccess a v indexu zmenit cesty :-) Tim si myslim, ze se problem stane snaze resitelny :-)

jtousek
Člen | 951
+
0
-

Pokud jsem problém správně pochopil tak první problém o zabezpečení složky app, která musí být v document_root, ideálně přes .htaccess pomocí deny from all. Nedávno jsem to potřeboval, vyřešil jsem to přejmenováním na .app, potom už deny nevadí ptz taková url potřeba není.

Druhý problém s RewriteBase. Osobně se mi podobné čachry s tím že aplikace není v rootu domény ale v nějaké podsložce vůbec nelíbí. Nějaké použitelné transparentní řešení snad ani neexistuje. K čemu to vlastně potřebuješ? Řešení pomocí automatických subdomén mi přijde mnohem jednodušší a lepší.

KingKoca
Člen | 25
+
0
-

pravda, automaticke subdomeny ano, ale ja bych radeji nejake reseni pro podadresare. Samozrejme, ze na ostrych provozech toto nebyva, ale na testovacich casto ano.

Jinak reseni v podobe prejmenovani slozky na .app je velice mazane :)

Diky za prispevky, myslel jsem si, ze to nepujde.