![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie wiedzialem jak to zatytulowac, jesli zle - prosze mnie poprawic.
Mianowicie: mam rozdzielane parametry w URL-ach za pomoca '/' (nazwe to wirtualnymi folderami). Wszystko ok, zrobilem sobie przekierowanie na css-y, js-y, graficzki, itp. wyglada to mniej wiecej tak: Kod Options +FollowSymLinks RewriteEngine on RewriteBase / RewriteRule ^folder/(.*)$ /foldeerek/plik2.php?param=$1 RewriteRule ^css/(.*)$ /podfolder/css/$1 RewriteRule ^gfx/(.*)$ /podfolder/gfx/$1 RewriteRule ^js/(.*)$ /podfolder/js/$1 rewritecond %{REQUEST_FILENAME} !^(.+)\.css$ rewritecond %{REQUEST_FILENAME} !^(.+)\.htc$ rewritecond %{REQUEST_FILENAME} !^(.+)\.js$ rewritecond %{REQUEST_FILENAME} !^(.+)\.png$ rewritecond %{REQUEST_FILENAME} !^(.+)\.gif$ rewritecond %{REQUEST_FILENAME} !^(.+)\.jpg$ rewritecond %{REQUEST_FILENAME} !^folder/(.*)$ RewriteRule ^([a-zA-Z]+)/(.*)$ plik.php?parametr1=$1¶m2=$2 # tutaj reszta parametrow przez RewriteRule Na czym polega moj problem: otoz moge bez problemu otwierac wszystkie pliki z tych wirtuali, przekazywac parametry do plik.php, ale gdy odwoluje sie /folder/asd, to zamiast otwierac /foldeerek/plik2.php?param=asd, to otwiera mi plik.php?parametr1=asd¶m2=, tak jakby ignorowal ostatnie rewritecond. Siedzialem pare dni nad tym i nie moge, jak do tej pory, znalezc rozwiazania. Z gory dzieki za pomoc! Ten post edytował erix 1.06.2006, 22:35:13 -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
chyba chodzi o to, ze powinieneś dołożyć flagę [L] - Last wtedy kiedy nie chcesz żeby dalej były przetwarzane regułki. Jeżeli zapytanie będzie pasowało do reguły, jego przetwarzanie zakończy się.
Spróbuj więc: Kod RewriteRule ^folder/(.*)$ /foldeerek/plik2.php?param=$1 [L] być może będziesz musiał dodatkowo pokombinować z kolejnością reguł żeby wszystko działało tak jak trzeba. Widzę też, że przepisujesz odwołania do css itp. żeby działały - sprawdź czy nie wygodniej będzie ci użyć modyfikatorów -d i -s dla RewriteCond - możesz w ten sposób pomijać przetwarzanie reguł jeżeli zapytanie dotyczy istniejącego pliku folderu. szczegóły: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html pozdr. Ten post edytował siemakuba 4.06.2006, 20:04:33 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
hmm...
albo cos zle robie albo mam cos zwalone... Daje [L] i przetwarza nastepne reguly :/ wrzucilem nastepne w komentarz i dziala (sic!) BTW: czytalem dawno ten manual ![]() Ten post edytował erix 4.06.2006, 18:22:59 -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Daje [L] i przetwarza nastepne reguly :/ hm, przetwarza nastepne, ale te, ktore sa juz po nastepnym bloku RewriteCond - mam racje? dlatego napisalem o kolejnosci ustawienia regul - moze to miec znaczenie :) P.S. napisz co chcesz konkretnie osiagnac, wydaje mi sie ze za duzo tu kombinowania i z kazda kolejna potrzebna regulka bedzie coraz gorzej. Mozna to zrobic naprawde prosto. Moj przykladowy plik .htaccess: Kod RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^(.*)$ index.php?request=$1 [NC,QSA] wszystko oprocz istniejacych plikow i folderow idzie do pliku index.php w zmiennej tam jest decyzja co dalej. pozdr. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
pomodzilem i...
Kod RewriteRule ^([a-zA-Z]+)/(.*)$ plik.php?parametr1=$1¶m2=$2 RewriteRule ^([a-zA-Z]+)/$ plik.php?parametr1=$1¶m2=$2 Zauwazylem, ze wszystko mi psuje ta pierwsza regula. Gdy ja 'komentne', to dziala ok. edit: sam doszedlem do rozwiazania: zauwazylem, ze [L] jest ignorowane, gdy w rewriterule drugi parametr nie jest '-'. Wystarczylo: Kod RewriteRule podfolder - [L] RewriteRule foldeerek - [L] po pierwszych regulkach i spokoj... prawie dwa tygodnie siedzenia, kurza twarz... Ten post edytował erix 5.06.2006, 22:42:24 -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:30 |