DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Regular expression i htaccess (http://www.devprotalk.com/forumdisplay.php?f=41)
-   -   .htaccess - prekid izvršenja rules (http://www.devprotalk.com/showthread.php?t=310)

godza 26. 10. 2005. 18:23

.htaccess - prekid izvršenja rules
 
moj trenutni .htaccess izgleda ovako:
Kôd:

RewriteRule ^admin/(.*) admin.php?route=$1
RewriteRule ^site/(.*) index.php?route=$1

, to radi posao, ali ja bih hteo malo drukcije resenje.

hteo bih nesto da uradim poput ovoga (sad ovo veze sa vezom nema, ali sluzi cisto da vam predocim sta bih hteo da postignem)
Kôd:

if (^admin/(.*)) {
  RewriteRule ^admin/(.*) admin.php?route=$1
} else {
  RewriteRule ^(.*) index.php?route=$1
}

ako pokusam nesto ovako
Kôd:

RewriteRule ^admin/(.*) admin.php?route=$1
RewriteRule ^/(.*) index.php?route=$1

onda u slucaju da korisnik odradi zahtev /admin/
izvrsice se i prvo i drugo override-ovanje, a to mi nije cilj.

Ima li neko resenje/savet na ovo moje pitanje?

bluesman 26. 10. 2005. 19:53

Ne znam da li si probao sa [L] - to je oznaka da je "last rule"?

godza 26. 10. 2005. 20:13

Citat:

Originalno napisao bluesman
Ne znam da li si probao sa [L] - to je oznaka da je "last rule"?

hmmmm, nisam, moze neki primer?

robi-bobi 26. 10. 2005. 20:14

evo kako sam ja uradio multipledomain hosting na paketu koji ima samo domain parking:

Citat:

RewriteCond %{HTTP_HOST} ^(www\.)?nekisajt.com$
RewriteRule ^(.*)$ /nekisajt/$1 [L]

RewriteCond %{HTTP_HOST} ^(www\.)?nekidrugisajt.com$
RewriteRule ^(.*)$ /nekidrugisajt/$1 [L]

bluesman 26. 10. 2005. 20:19

Bas tako :) To samo znaci da ne procesira ostale rules kada dobije "match"

godza 26. 10. 2005. 20:26

odlicno resili ste problem

Kôd:

RewriteRule ^admin/(.*) admin.php?route=$1 [L]
RewriteRule ^/(.*) index.php?route=$1

Hvala Gorane hvala RobbyBobby.

MorenoArdohain 27. 10. 2005. 20:17

Mozda i meni neki pomogne, imam cudan problem sa .htaccess i ovom linijom:

RewriteRule ^proizvodjac/(.*)/(.*)/ /mobilni/index.php?pr=$1 [L]

ako unesem URL nesto kao:
http://www.mojmobilni.com/proizvodjac/11/Sharp/ to radi

ali ako unesem nesto kao:
http://www.mojmobilni.com/proizvodjac/13/LG/ ne radi, dobijam 500 Internal error..

onda sam otkrio da ako unesem bilo sta sto ima po 2 znaka tamo gde su 13 i LG u URL-u, ne radi uopste.. Nema nikakve logike.. Ima li neko ideju?

DOPUNA: Na kraju mi je palo na pamet da testiram taj isti htaccess u lokalu i radi.. Tako da mislim da je u pitanju server issue, upravo sam popunio ticket na sajtu hosting kompanije, pa cu da vidim da li je do njih

bluesman 27. 10. 2005. 21:13

A da stavis uslovno?

RewriteRule ^proizvodjac/(.*)/(.*)?[/]? /mobilni/index.php?pr=$1 [L]

Ne znam, probaj, to mi prvo pada na pamet. Misli da ces imati problem ako neko ukuca:

/proizvodjac/11 (bez slash na kraju)

ili
proizvodjac/11/Sharp (bez slash na kraju)

Mislim da ti 500 error nastaje bas u takvim slucajevima kada fali / na kraju

U svo ovo sto sam napisao nisam siguran, pricam napamet, bez testiranja ne mogu biti siguran 100%

MorenoArdohain 27. 10. 2005. 21:36

Citat:

Originalno napisao bluesman
A da stavis uslovno?

RewriteRule ^proizvodjac/(.*)/(.*)?[/]? /mobilni/index.php?pr=$1 [L]

Ne znam, probaj, to mi prvo pada na pamet. Misli da ces imati problem ako neko ukuca:

/proizvodjac/11 (bez slash na kraju)

ili
proizvodjac/11/Sharp (bez slash na kraju)

Mislim da ti 500 error nastaje bas u takvim slucajevima kada fali / na kraju

U svo ovo sto sam napisao nisam siguran, pricam napamet, bez testiranja ne mogu biti siguran 100%

Da, znam za to, ja sam samo hteo da pojednostavnim stvari..
Sad sam namestio taj uslovni slash na kraju..

Evo jos primera kad dobijam error:
http://www.mojmobilni.com/proizvodjac/13/LG/
http://www.mojmobilni.com/proizvodjac/12/LG/
http://www.mojmobilni.com/proizvodjac/11/LA/

a ne dobijam kad uradim ovo:
http://www.mojmobilni.com/proizvodjac/13/LG (nema trailing slash na kraju!)
http://www.mojmobilni.com/proizvodjac/11/Sharp/
http://www.mojmobilni.com/proizvodjac/10/SonyEricsson/
itd..

Dakle, rezime, dobijam error samo kad imam nesto ovako:
http://www.mojmobilni.com/proizvodjac/XX/XX/
gde je X slovo ili broj..

U lokalu mi sve izgleda ok, jedino na serveru brlja.. tako da mi se cini da je ipak do hosting kompanije..

Hvala na odgovoru

noviKorisnik 27. 10. 2005. 22:07

Mene buni zašto se to dešava, no bolje je da pokuša da se nađe drugo rešenje.

Šema ide /proizvođac/ pa id proizvođača, a dalje su neka mazanja za pretraživače i nisu bitna. id je broj i on je obavezan, pa bih taj deo krstio sa (\d+), a ono što sledi nije potrebno, znači da je dovoljno samo da dozvolimo da može da postoji sa (.*)

Dakle, možda...
Kôd:

RewriteRule    ^proizvodjac/(\d*)(.*)    /mobilni/index.php?pr=$1 [L]


Vreme je GMT +2. Trenutno vreme je 02:08.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.