hmnc Posted February 17, 2006 Report Share Posted February 17, 2006 Sveiki! Par cik izbraukājot googli un vēl visādus resursus sev neko piemērotu neatradu (ok, ok, laika arī galīgi nav :/ ), tad jautāšu šeit: virtuālais urlis: lapa.lv/aa/bb/cc/ reālais: index.php?p1=aa&p2=bb&p3=cc problēma sākas tur, ka nevar dabūt *reāli eksistējošu* folderus (kas ir pilnīgi loģiski, jo tie tiek padoti uz mainīgo $p1), bet priekšā neko likt negribās, jo tas uzreiz bojā skatu (šādi neder - lapa.lv/page/aa/bb/cc/, resp - "page" tiek padots caur .htaccess, kā statiska vērtība pirms dinamiskajām, lai atstātu piekļuvi reālajiem folderiem uz rootdir) darba variants ar ko es čakarējos ir šāds: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z0-9_]{1,})/([a-z0-9_]{1,})/([a-z0-9_]{1,}) index.php?p1=$1&p2=$2&p3=$3 [QSA,L] RewriteRule ^([a-z0-9_]{1,})/([a-z0-9_]{1,}) index.php?p1=$1&p2=$2 [QSA,L] RewriteRule ^([a-z0-9_]{1,}) index.php?p1=$1 [QSA,L] tātad - no šī piemēra izejot vajag dabūt tā, lai ir piekļuve reāli eksistējošiem folderiem. varbūt ķāds var izlīdzēt ar padomu :) paldies. Link to comment Share on other sites More sharing options...
hmnc Posted February 18, 2006 Author Report Share Posted February 18, 2006 Roze, Delfins, bubu ? help...? :) Link to comment Share on other sites More sharing options...
bubu Posted February 18, 2006 Report Share Posted February 18, 2006 Nav ne jausmas. Vienīgais, kas ienāk prātā - ir salikt tos visus folderus kādā citā, tipa zem static foldera. Un tad uzlikt rūli, lai visus urļus, kuriem sākumā ir static/ atstāj kā ir. Link to comment Share on other sites More sharing options...
Delfins Posted February 19, 2006 Report Share Posted February 19, 2006 URLs var būt /admin/modulis/page/parms1/parms2 (default language) /lv/modulis/page/parms1/parms2 /lv/modulis/parms1/parms2 /modulis/page/parms1/parms2 (default application, language) /modulis/parms1/parms2 (default application, page, language) /lv/admin/modulis/page/parms1/parms2 Bet tas ir atkar;igs kā tu uzrakstītsi REQUEST apstrādi... tobiš visa loģika ir nevis iekš mod_rewrite, bet iekš PHP... mod_rewrite pilda tikai "netiešo pāradresēšanu" RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?$1 [QSA] function initFromRequest($request) { # Parse request $m = explode('/',$request); foreach ($m AS $i=>$v) { if ($v=='') unset($m[$i]); # remove empty nodes (//) } $m = array_values($m); # Check language (first parameter in string) $this->_sys_locales = & $GLOBALS['SYS_LOCALES']; if ( !empty($m[0]) && !empty($this->_sys_locales[$m[0]]) ) { $this->_sys_locale = $m[0]; array_shift($m); // we do not need it in call stack } # Check modal handling if ( !empty($m[0]) && $m[0]=='modal' ) { $this->isModal = true; array_shift($m); // we do not need it in call stack } # Check modal handling (if broken LOCALE) if ( !empty($m[1]) && $m[1]=='modal' ) { $this->isModal = true; unset($m[0]); // broken LOCALE unset($m[1]); // we do not need it in call stack } # Init application if ( !empty($m[0]) && is_dir('apps/'.$m[0]) ) { $this->_sys_application = $m[0]; array_shift($m); } # Now we have clean call stack $this->_sys_callstack = $m; //print formatArr($this); return false; } Link to comment Share on other sites More sharing options...
Delfins Posted February 19, 2006 Report Share Posted February 19, 2006 Un vispār... es iesaku parametrus nelikt kā direktorijas... bet kā normālus. mod_rewrite domāts lai paslēptu visu reālo struktūru un tādā veidā rādīt ~ biznes-loģiku /lv/products/browse/pccomponents/cpu (tas ir iznjemums, kad parametrs ir "DB kategorija") /lv/products/viewitem/1001/?fulldescr=true Link to comment Share on other sites More sharing options...
Roze Posted February 20, 2006 Report Share Posted February 20, 2006 Nu pag ja jau tev tas rewrite ir ielikts root direktorijā tad jau viņš nekādīgi netraucē eksistējošiem (reāliem) folderiem, jo rewrite rule sāk strādāt tikai tad kad reāli folderis neeksistē: RewriteCond %{REQUEST_FILENAME} !-d jebšu es nesaprotu ko vēlams panākt? Link to comment Share on other sites More sharing options...
hmnc Posted February 20, 2006 Author Report Share Posted February 20, 2006 a tur jau tā fiška - folderis /img/ eksistē, bet piemēram /img/param/param/ neeksistē un tāpēc viņš turpina ar rewriterule. Delfins - liels paldies :) ņemšu vērā. Link to comment Share on other sites More sharing options...
Delfins Posted February 20, 2006 Report Share Posted February 20, 2006 ja kāda folderī iemests vēl kāds .htaccess + rewrite, tad jau tā cita runa.. bet nu overkils anyway :) Link to comment Share on other sites More sharing options...
hmnc Posted February 20, 2006 Author Report Share Posted February 20, 2006 hmmm. Delfis pats kādu sistēmu izmanto (apstrādei)? vai arī vispār nelieto šito glīšo adresāciju? :) Link to comment Share on other sites More sharing options...
Delfins Posted February 20, 2006 Report Share Posted February 20, 2006 tu manu postu ar kodu apskatīji ? /[locale]/[application]/[module]/[module_action]/[param1../..parmN] Link to comment Share on other sites More sharing options...
hmnc Posted February 20, 2006 Author Report Share Posted February 20, 2006 neinu es jau nez vai tu reāli to izmanto vai nē, jo varbūt tikai demonstrē kā piemēru :) Link to comment Share on other sites More sharing options...
Delfins Posted February 20, 2006 Report Share Posted February 20, 2006 Reāls piemērs (mans viens no pēdējiem engine). Vēlāk ielikšu saiti, kad būs viss pabeigts. Link to comment Share on other sites More sharing options...
hmnc Posted February 20, 2006 Author Report Share Posted February 20, 2006 mmmm nais :) paldies! Link to comment Share on other sites More sharing options...
Recommended Posts