DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Regular expression i htaccess (http://www.devprotalk.com/forumdisplay.php?f=41)
-   -   mod_rewrite: kako saznati izvorni url ? (http://www.devprotalk.com/showthread.php?t=2130)

ivanhoe 27. 12. 2006. 13:06

mod_rewrite: kako saznati izvorni url ?
 
Pravim neki plugin za redirektovanje stranica pod wordpressom, a koristi se mod_rewrite na serveru da bi urlovi bili lepi. To mi stvara problem jer kad moj plugin bude pozvan mod_rewrite je vec izmenio url i ja ne mogu da ga matchujem.

jel ima neko ideju kako da se u php skripti sazna kako je glasio ne-rewriteovani URL, znaci onaj lepo formatirani koji je kucan u browser, jer ovaj rewrite-ovani mi ne radi posao?

zextra 27. 12. 2006. 13:42

Nista mi ne pada na pamet, osim da setujes ENV varijablu sa sadrzajem originalnog url-a, ali nisam siguran da mozes da procitas env var kad je php pokrenut kroz mod_php.
Citat:

Originalno napisao RewriteRule directive
'env|E=VAR:VAL' (set environment variable)
This forces an environment variable named VAR to be set to the value VAL, where VAL can contain regexp backreferences $N and %N which will be expanded. You can use this flag more than once to set more than one variable. The variables can be later dereferenced in many situations, but usually from within XSSI (via <!--#echo var="VAR"-->) or CGI (e.g. $ENV{'VAR'}). Additionally you can dereference it in a following RewriteCond pattern via %{ENV:VAR}. Use this to strip but remember information from URLs.


bluesman 27. 12. 2006. 13:51

Nisam siguran da li sam te razumeo dobro, ali obicno mozes da vidis tako sto pogledas koje su varijable u $_GET, pa pogledas $_SERVER['PHP_SELF'] pa jos neke $_SERVER varijable, pa od toga mozes da sklopis tacan url ako ga ne znas. Mada iskreno ne razumem situaciju koju si opisao.

jablan 27. 12. 2006. 14:31

Citat:

Originalno napisao zextra
da setujes ENV varijablu sa sadrzajem originalnog url-a

Ili da originalni URL upakuješ u request parametar.

bojan_bozovic 27. 12. 2006. 15:10

$uri=$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"];

EDIT: query_string ne sadrzi "?".

cvele 27. 12. 2006. 15:30

clean install wordpressa nema ukljucen mod_rewrite, sto znaci da je njihova fja sposobna da sastavi url i bez mod_rewrite...

dakle pogledas njihovu fju i napravis duplikat koji ces modifikovati tako da ti daje forced normalne urlove... ili jos bolje nadjes sta u toj fji trigeruje da ona vraca clean urlove i ti na silu sprecis da do toga dodje kada ti zatreba.

ivanhoe 27. 12. 2006. 16:24

Ovo sto Zextra i Jablan predlazu ima smisla, ali mi je malkice heavy, moracu iz plugina da menjam .htaccess

BTW, ajd malo da pojasnim, posto me izgleda pola ljudi nije skapiralo:

kad se ukuca url npr. nekisajt.com/articles/neki_post mod_rewrite to pretvori u nesto tipa /index.php?page=neki_post&neki=parametar&jos=jedan. Onda apache uradi interni redirekt i pozove index.php od wordpressa sa tim parametrima, a wordpress pozove moj plugin(obican php skript).

Nazalost, ako iz mog skripta gledam PHP_SELF, SERVER_NAME, QUERY_STRING i ostalo, sasvim logicno dobijam vrednosti za url kojim je pozvan php, a to je /index.php?page=neki_post&neki=parametar&jos=jedan koji je generisao mod_rewrite. Onaj prvi url (nekisajt.com/articles/neki_post) ne umem da iscitam.

E, a to je meni problem jer treba da se radi matchovanje uz upotrebu wild carda, covek hoce da kaze npr nekisajt.com/articles/misc/* i da time matchuje sve strane iz te kategorijea. Za to mi je neophodan lepo formatiran url..

EDIT: Alternativni pristup bi bio ovo sto Cvele kaze, da napravim logiku koja provaljuje trenutnu kategoriju iz baze, i njene parent kategorije, pa generise url, ali to me tek mrzi :)

bojan_bozovic 27. 12. 2006. 16:36

A ja imam jedno pitanje:

Off Topic:
Jel' to mod_rewrite u modi? Ja ne vidim toliki razlog za njim, cak i SEO kad se uzme u obzir, tim pre sto ce biti glavobolja ako se prelazi na drugi webserver npr. IIS

cvele 27. 12. 2006. 16:56

a ja imam odgovor:

Koliko ti je ovo zgodno za recimo link ili copy/paste preko im:
Kôd:

http://www.amazon.com/s/?node=1036592&x=2&sort=salesrank&y=4&pct-off=20-70&hidden-keywords=-shoe%20-boot%20-charles&emi=ATVPDKIKX0DER


http://www.businesssolutionsmag.com/index.php?option=com_jambozine&layout=article&view=page&aid=2483&Itemid=27

http://www.ieee.org/portal/site/mainsite/menuitem.818c0c39e85ef176fb2275875bac26c8/index.jsp?&pName=corp_level1&path=about/documentation/copyright&file=privacy.xml&xsl=generic.xsl

http://www.processor.com/editorial/article.asp?article=articles%2Fp2848%2F30p48%2F30p48.asp&guid=&searchtype=&WordList=&bJumpTo=True

http://estore.autodesk.com/dr/v2/ec_Main.Entry16?SP=10024&PN=51&xid=19515&V1=11033743&V2=11033743&V3=1&V5=&V4=10&S1=&S2=&S3=&S4=&S5=


cvele 27. 12. 2006. 16:57

Off Topic:
btw SEO... veoma je zgodan mod_rewrite zbog cinjenice da mozes da punis url sa razlicitim kw


Vreme je GMT +2. Trenutno vreme je 21:21.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2017, 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.