[ stefaneg @ 08.02.2006. 18:38 ] @
Situacija je sledeća: želeo bih da mi mod_rewrite odradi sledeće, a nisam siguram kako to da izvedem:

najbolje da pokažem na primerima:

20xindex.php => index.php
23xlogin.php => login.php
admin/0xaddpage.php => admin/addpage.php
...

stavim u .htacces u root-u sledeće:

RewriteEngine on
RewriteBase /
RewriteRule "regularni izraz"

kako bi glasio regularni izraz za ovo? pokušavao sam sam nešto da izbudžim, ali uspeo sam da učinim ceo sajt unavailable ("Internal sever errror!")

e, ako sam promašio forum, move-ajte!
[ boccio @ 09.02.2006. 12:43 ] @
cekaj, ti hoces da www.example.com/20xindex.php vozi na www.example.com/index.php ?! hm... cudno, bas cudno... al ajde, to bi recimo moglo ovako:
RewriteRule ^20xindex.php/?$ index.php [L], ali mi nikako nije jasno cemu to sluzi...
[ stefaneg @ 09.02.2006. 18:47 ] @
tnx, ali ovo će raditi samo na index.php ali šta sa ostalim fajlovima? namerno sam naveo različite fajlove u različitim direktorijima... hajde sad!
[ boccio @ 09.02.2006. 19:08 ] @
Ovde neko nekog debelo ne razume... koja je svrha preslikavanja 1-na-1 ?
Citat:

20xindex.php => index.php
23xlogin.php => login.php
admin/0xaddpage.php => admin/addpage.php
...

sta zelis ovim da postignes? daj da podjemo od toga...
[ noviKorisnik @ 09.02.2006. 19:31 ] @
Ako sam razumeo, šema je:

"nešto pre", pa neki broj, pa "x", po "glavno" tačka php => "nešto pre", pa "glavno" tačka php

s tim što "nešto pre" može biti ništa ili putanja direktorijuma (nešto što završava sa "/")

... koliko je ovaj opis blizu ili daleko opisu šeme tražene transformacije?
[ Nemanja Avramović @ 09.02.2006. 20:38 ] @
Probaj ovako, mada te ni ja ne razumem...

RewriteRule ^(.*)x(.*).php$ $2.php [L]

edit: ovo nece raditi sa podfolderima... za svaki podfolder dodaj:

RewriteRule ^folder/(.*)x(.*).php$ folder/$2.php [L]

[Ovu poruku je menjao JaHvram dana 09.02.2006. u 21:44 GMT+1]
[ stefaneg @ 09.02.2006. 20:39 ] @
To je to! slovo x koristim kao graničnik, a broj ispred koji može biti jednocifreni ili višecifreni predstavlja id stranice. Možda vam to zvuči glupo ali palo mi je na pamet da pri određivanju parametara stranice koje izvlačim iz baze pokupim njen id preko naziva same stranice (odnosno preko tog broja koji odvajam graničnikom "x"). Tako na primer ako imam jednu skriptu u admin panelu kojom bih ispisivao sve fajlove u nekom folderu mogao bih dobiti i neke podatke koji bi bili čuvani u bazi o samim fajlovima... glupo? Razmišljao sam i o opciji da parametre samih fajlova dobijam preko adrese fajla... to je rezervna opcija, ako ovo ne uspe. Možda je i bolja, ali pošto sam ovako krenuo...
[ stefaneg @ 09.02.2006. 20:53 ] @
Sad ja vidim da ovo ne ide. Po malo kapiram koncept mod_rewrit-a i ovi izrazi koje si mi dao mi izgledaju ok, ali dobijam poruku:

The requested URL /.php was not found on this server.

znači ostaje mi druga opcija, preko adrese skripte. Pa dobro, "to i nije tako loš skor"

hvala anyway
[ Nemanja Avramović @ 09.02.2006. 21:44 ] @
Meni sa RewriteRule ^(.*)x(.*).php$ $2.php [L] lepo radi...

[Ovu poruku je menjao JaHvram dana 09.02.2006. u 22:46 GMT+1]
[ boccio @ 09.02.2006. 22:14 ] @
Citat:
stefaneg: Možda vam to zvuči glupo

Možda malo
Citat:
stefaneg:slovo x koristim kao graničnik, a broj ispred koji može biti jednocifreni ili višecifreni predstavlja id stranice

ček, znači ako sam dobro skapirao to bi trebalo da bude ovo:

RewriteRule ^([0-9]+)x([^<]+).php/?$ $2.php?id=$1 [L]

čisto iz glave...

[Ovu poruku je menjao boccio dana 09.02.2006. u 23:18 GMT+1]
[ stefaneg @ 09.02.2006. 23:55 ] @
Pa bre niste normalni !!! Rekoh odustajem, pošto ni ja više ne znam šta želim, a vi nastavljate. Blah.... ako vam se već kuca onda ću precizno definisati šta je bila moja prva namera jer sam se sad stvarno pogubio dok sam testirao ovo što ste mi napisali i zaključio da možda nisam najbolje definisao pitanje:

Imam recimo jedan folder u kome su fajlovi:

1xindex.php
2xlogin.php
3xlogout.php
4xaddpage.php
...
20xadddownload.php

U index fajlu imam petlju kojom se čita sadržina foldera i za svaki fajl ispisuje se sledeće:
- naziv fajla (to je ono prosto)
- podaci o tom fajlu dobijeni iz baze, a na osnovu id-a izvučenog iz samog naziva fajla

Ja želim da kada se nađem u tom folderu i učitam u adresbaru recimo index.php da dobijem sadržinu 1xindex.php-a. Pretpostavio sam da se ovo radi pomoću mod_rewrite-a, ali sam trenutno zbunjen oko ovih pitanja: Šta ovaj mod u stvari radi i da li može da odradi ovo? A treba mi da se npr. fajlu www.bezveze.com/folder/1xindex.php može pristupiti preko linka www.bezveze.com/folder/index.php, ali da isčitavanjem foldera koji sadrži taj fajl dobijem njegov pravi naziv kako bih saznao informacije o njemu. Hajde SAD!
[ noviKorisnik @ 10.02.2006. 10:27 ] @
Pa vrlo teško. Ti u stvari tražiš obrnuto od ovoga što ti je nuđeno. Ali postoji problem jer ner ne znaš koji broj stoji ispred xindex.php.
[ dragancesu @ 10.02.2006. 11:31 ] @
Postavka ti je pogresna, i ne verujem da si negde video da se to tako radi. Ovo bi ti na neki nacin bilo resenje da samo jedan korisnik pristupa sajt sto je daleko od istine. Sta bi se desilo?

Kreiras 1xindex.php i kopiras u index.php

To bi video tekuci korisnik i svaki sledeci koji bi se pojavio, a to ti verovatno nije cilj.

Da je sadrzaj

1xindex.php, 2xlogin.php, 3xlogout.php, 4xaddpage.php, ... , 20xadddownload.php

uvek isti (sto pretpostavljam da nije) onda bi to resio sa include, nesto u smislu

case
case id=1
include "1xindex.php"
case id=2
include "2xlogin.php"
case id=3
include "3xlogout.php"
...


Malo pogledaj uputstva pa ces videti da ti php daje mogucnost da dinamicki kreiras stranicu svakom na odgovarajuci zahtev (nista sto nisi znao).

To se iapk radi u stilu index.php?id=1 ( ili 2 ili 3 i tako dalje ), a u index.php imas deo koda koji ce to odradjivati i prikazivati postiocu sajta sadrzaj na osnovu zadatih parametara




[ jablan @ 10.02.2006. 11:47 ] @
Ako sam dobro razumeo, ti hoćeš da za svaku skriptu u bazi čuvaš neke za nju vezane parametre.

Ideja sa prefiksom fajla i mod_rewrite ti je jedna od najgorih koje su mogle da ti padnu na pamet.

Ako parametre u bazi nećeš da indeksiraš celom putanjom do fajla (što je razumljivo, jer putanja ume da bude podugačka), koristi neku od ugrađenih heš funkcija u PHPu. One za to i služe.

Naprimer,

http://www.php.net/manual/en/function.md5.php

Dakle, nešto tipa $key=md5($_SERVER['PHP_SELF']) i onda tu promenljivu koristiš kao ključ za tabelu sa parametrima.

[Ovu poruku je menjao jablan dana 10.02.2006. u 12:50 GMT+1]
[ stefaneg @ 10.02.2006. 12:09 ] @
Konačno neko da mi kaže da nisam mogao da nađem goru ideju :) Rekao sam da mi je druga opcija preko adrese fajla, i tako će biti! Verovatno ću iskoristiti md5

Hvala svima