DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > Regular expression i htaccess
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

Regular expression i htaccess regex, PCRE, POSIX, upotreba Apache .htaccess , mod_rewrite

Odgovori
 
Alati teme Način prikaza
Staro 09. 10. 2006.   #1
Blood
Boban Karišik
Expert
 
Avatar Blood
 
Datum učlanjenja: 05.11.2005
Lokacija: Beograd
Poruke: 556
Hvala: 36
186 "Hvala" u 21 poruka
Blood is on a distinguished roadBlood is on a distinguished road
Pošaljite poruku preko Skype™ za Blood
Default .htaccess problem

Ovo verovatno ne ide u php, ali ne znam gde drugde da ga stavim, neka moderatori prebace temu gde misle da treba da ide(samo ne u djubre )

Evo kratak opis problema, pravim neku scriptu koja treba da bude seo friendly. To sam resio preko .htaccess fajla, evo kako on ozgleda:

Kôd:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^login(.*)/$ /login.php [L]
RewriteRule ^admin/(.*)/$ /admin.php?act=$1 [L]
RewriteRule ^(.*)/$ /index.php?act=$1 [L]
i on radi super, problem nastaje kad se scripta ne nalazi u root-u, vec u nekom subdir-u.
Ja uzmem i prepravim kod da izgleda ovako:

Kôd:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^script/(.+[^/])$ $1/ [R,L]
RewriteRule ^script/login(.*)/$ /login.php [L]
RewriteRule ^script/admin/(.*)/$ /admin.php?act=$1 [L]
RewriteRule ^script/(.*)/$ /index.php?act=$1 [L]
medjutim to ne radi(naravno .htaccess file uploadujem u root/script/ dir), dobijem error 404 za npr http://root/script/test/ dok u lokalu radi savrseno

Da li neko zna gde gresim?

Hvala!
__________________
Ako već nisi Anđeo, bar budi čovek...
Blood je offline   Odgovorite uz citat
Staro 09. 10. 2006.   #2
LiquidBrain
Milan Cvejic
Wrote a book
 
Avatar LiquidBrain
 
Datum učlanjenja: 05.09.2006
Lokacija: Beograd
Poruke: 1.241
Hvala: 32
73 "Hvala" u 56 poruka
LiquidBrain će postati "faca" uskoro
Pošaljite poruku preko Yahoo za LiquidBrain
Default

Lupam sada, ali mozda je problem u

Kôd:
RewriteBase /
probaj sa
Kôd:
RewriteBase /script/
Mozda ima nekog smisla A ipak mozda i nema...
__________________
http://weevify.com
LiquidBrain je offline   Odgovorite uz citat
Staro 09. 10. 2006.   #3
oliver
expert
Expert
 
Avatar oliver
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 580
Hvala: 1
0 "Hvala" u 0 poruka
oliver is on a distinguished road
Pošaljite ICQ poruku za oliver Pošaljite poruku preko Skype™ za oliver
Default

ja sam TOTALNI laik za .htaccess, ali, zar ne bi trebalo da u drugom slucaju RewriteBase bude "/script" a ne "/", a RewriteRule-ovi ostaju nepromijeneni, tj:

Kôd:
RewriteBase /script
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^login(.*)/$ /login.php [L]
RewriteRule ^admin/(.*)/$ /admin.php?act=$1 [L]
RewriteRule ^(.*)/$ /index.php?act=$1 [L]
unaprijed se izvinjavam ako sam lupio

edit prestize me LiquidBrain
__________________


Poslednja izmena od oliver : 09. 10. 2006. u 21:21.
oliver je offline   Odgovorite uz citat
Staro 09. 10. 2006.   #4
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Probaj:
Kôd:
<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d

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

  RewriteRule ^(.*)/$ ./index.php?act=$1 [L]
</IfModule>
Sada bi trebalo da radi nezavisno od toga u koji dir ga strpas (nešto slično tome koristim za moj Django setup na DreamHost-u).
__________________
Python Ambassador of Serbia
Petar Marić je offline   Odgovorite uz citat
Staro 09. 10. 2006.   #5
Blood
Boban Karišik
Expert
 
Avatar Blood
 
Datum učlanjenja: 05.11.2005
Lokacija: Beograd
Poruke: 556
Hvala: 36
186 "Hvala" u 21 poruka
Blood is on a distinguished roadBlood is on a distinguished road
Pošaljite poruku preko Skype™ za Blood
Default

Probao sam i to, ali nije uspelo...
Mislim, ne prijavljuje mi 404 vec me baca na http://root/index.php
a probao sam onda i da mu stavim ovako
Kôd:
RewriteEngine On
RewriteBase /script/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^script/(.+[^/])$ $1/ [R,L]
RewriteRule ^script/login(.*)/$ /login.php [L]
RewriteRule ^script/admin/(.*)/$ /admin.php?act=$1 [L]
RewriteRule ^script/(.*)/$ /index.php?act=$1 [L]
A onda sam opet poceo da dobijam 404
__________________
Ako već nisi Anđeo, bar budi čovek...
Blood je offline   Odgovorite uz citat
Staro 09. 10. 2006.   #6
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Ajd daj malo detaljnije informacije o podešavanjima:
* ime servera
* lokacija web root-a na disku
* relevantnu Virtual Host sekciju - ako postoji
* relativnu putanju do skripti u odnosu na web root na disku
* relativnu putanju do skripti u odnosu na web root za http
* putanje koje pokušavaš da dobiješ
* putanje koje dobijaš, ili grešku ako nju dobijaš
* relativnu putanju do .htaccess fajla u odnosu na web root na disku

I ako nije problem pošalji to za .htaccess koji sam ti dao, da ne analiziram druge.
__________________
Python Ambassador of Serbia
Petar Marić je offline   Odgovorite uz citat
Staro 09. 10. 2006.   #7
dejanr
Dejan Ranisavljevic
Certified
 
Datum učlanjenja: 07.06.2005
Lokacija: Novi Sad
Poruke: 87
Hvala: 12
10 "Hvala" u 6 poruka
dejanr is on a distinguished road
Pošaljite ICQ poruku za dejanr Pošaljite poruku preko MSN za dejanr
Default

Probaj sa:
Kôd:
<IfModule mod_rewrite.c>
  Options +FollowSymLinks 
  RewriteEngine On
...
A evo i http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html pa kreni redom ...
dejanr je offline   Odgovorite uz citat
Staro 09. 10. 2006.   #8
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

Ako stavis RewriteBase da ti je script, onda ti ne treba script/ u prvom parametru, jer se to automatski skida. U principu j RewriteBase bitan samo kad se koristi i mod_alias da bi Apache umeo da se snadje gde s sta nalazi, ovako kako ti radis mozes slobodno da ostavis kao u prvom primeru i da onda rewrite-ujes celu putanju.

Dakle, nesto ovako:
Kôd:
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^script/(.+)   /$1 [R,L]

RewriteRule ^script/login(.*)        /login.php [L]
RewriteRule ^script/admin/(.*)/?   /admin.php?act=$1 [L]
RewriteRule ^script/(.*)/?            /index.php?act=$1 [L]
Ovo bi moralo da sljaka, mada nisam probao... ako ne bude radilo, probaj da izmenis flagove da budu [R,L] tako da se uradi externi redirect, tako ces da vidis koju adresu on pokusava da dohvati, pa ce ti biti jasno gde je problem..

Ako isprobavas ovo u localu (ili imas pristup httpd.conf na serveru) onda je najbolje da dodas u definiciju virtuelnog hosta:
Kôd:
RewriteLog /neka/putanja/rewrite.log
RewriteLogLevel 5
log level podesi izmedju 2 i 10 na nivo detalja koji ti treba (petica je po meni sasvim dovoljna), pa onda lepo u njemu pogledaj sta se desava korak po korak...
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat
Staro 09. 10. 2006.   #9
srdjevic
profesionalac
Professional
 
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
srdjevic is on a distinguished road
Default

Ili mozes da SVE prebacujes na index.php, a da ti on bude switch. Onda u njemu pogledas path koji je trazen, pa mozes da odradis i header(location), a i include. ;-)
srdjevic je offline   Odgovorite uz citat
Staro 10. 10. 2006.   #10
Blood
Boban Karišik
Expert
 
Avatar Blood
 
Datum učlanjenja: 05.11.2005
Lokacija: Beograd
Poruke: 556
Hvala: 36
186 "Hvala" u 21 poruka
Blood is on a distinguished roadBlood is on a distinguished road
Pošaljite poruku preko Skype™ za Blood
Default

Hvala Vam svima na odgovorima, evo kako sam resio problem.

Kôd:
RewriteEngine On
RewriteBase /script/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^login(.*)/$ /script/login.php [L]
RewriteRule ^admin/(.*)/$ /script/admin.php?act=$1 [L]
RewriteRule ^(.*)/$ /script/index.php?act=$1 [L]
Kazu da je jutro pametnije od noci...
__________________
Ako već nisi Anđeo, bar budi čovek...
Blood je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
[.htaccess] problem kod broja strane apex Regular expression i htaccess 4 13. 11. 2009. 10:42
.htaccess Suske Sva početnička pitanja 1 11. 06. 2009. 18:28
Htaccess, mod_rewrite problem nEdImT Regular expression i htaccess 5 29. 01. 2008. 15:25
.htaccess pitanjce Dzordz Regular expression i htaccess 7 07. 03. 2007. 14:47
.htaccess problem Dragan Babić Regular expression i htaccess 3 26. 10. 2005. 14:03


Vreme je GMT +2. Trenutno vreme je 16:50.


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.