Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Problema mod rewrite
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Optimizare pentru motoarele de cautare (SEO)
Subiectul anterior :: Subiectul următor  
Autor Mesaj
ShD



Data înscrierii: 19/Noi/2007
Mesaje: 55

Trimis: Lun Noi 19, 2007 12:11 pm    Titlul subiectului: Problema mod rewrite  

Salutare tuturor,

Am si eu o mica si stresanta problema. Cand m-am apucat de programare nu aveam cunostine deloc de mod rewrite si de curand am inceput studiul.

Linkurile mele arata in mod normal de genul: index.php?navmode=eu&game=cs&site=profile&action=gallery&id=1 (am ales unul din cele lungi pentru a evidentia nevoia unui mod rewrite). Acelasi content este afisat si pentru index.php?site=profile... sau celelalte atribute navmode si game.

Dupa tutoriale si manuale citite am facut si partea de mod_rewrite dar am ajuns la o problema. Pentru lungimea maxima scrisa mai sus imi functioneaza un /eu/cs/profile/gallery/1 dar daca ii dau /eu/profile/gallery/1 (sarind parametrul game) am o mica problema la afisare. Am dat un echo $_SERVER si am vazut ca linkul cerut e de fapt index.php?navmode=eu&game=profile&...

As vrea sa va rog sa ma directionati catre un tutorial mai complex sau sa imi dati niste instructiuni pentru ca m-am cam pierdut.

PS: nu ma astept sa imi scrieti voi codul de rewrite ci doar de un tip&trick

Multumesc anticipat, Stelian Mocanita
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4279
Locație: acasa , in pat

Trimis: Lun Noi 19, 2007 12:27 pm    Titlul subiectului:  

pai mai fa un rewrite rule in care scrii ce se intampla daca sunt mai putine valori ...

adica tu practic ai ...

/eu/cs/profile/gallery/1
/variabila1/variabila2/variabila3/variabila4/variabila5

=> index.php?navmode=$1&game=$2&site=$3&action=$4&id=$5

eh, daca tu scoti una din variabile de genul ...

/eu/profile/gallery/1
nu o sa mai fie 5 valori deci rule-ul tau nu o sa mai mearga ...
deci va trebui sa scrii un rule si pentru asta

index.php?navmode=$1&game=default...etc
sau sa faci un redirect.

default poti sa-l setezi si din php (jocul default, valoarea default pt game), si in .htaccess sa nu il mai pui ca game=ceva.
Sus  
ShD



Data înscrierii: 19/Noi/2007
Mesaje: 55

Trimis: Lun Noi 19, 2007 12:32 pm    Titlul subiectului:  

Pirahna a scris: pai mai fa un rewrite rule in care scrii ce se intampla daca sunt mai putine valori ...

adica tu practic ai ...

/eu/cs/profile/gallery/1
/variabila1/variabila2/variabila3/variabila4/variabila5

=> index.php?navmode=$1&game=$2&site=$3&action=$4&id=$5

eh, daca tu scoti una din variabile de genul ...

/eu/profile/gallery/1
nu o sa mai fie 5 valori deci rule-ul tau nu o sa mai mearga ...
deci va trebui sa scrii un rule si pentru asta

index.php?navmode=$1&game=default...etc
sau sa faci un redirect.

default poti sa-l setezi si din php (jocul default, valoarea default pt game), si in .htaccess sa nu il mai pui ca game=ceva.

Default nu prea il pot seta pentru ca sunt prea multi utilizatori care au ca bookmark respectivul joc ca atat ii intereseaza dar asta nu e problema.

Practic va trebui sa rescriu regulile pentru fiecare situatie admisa de php daca am inteles corect. Mai citisem pe undeva ca si ordinea in care apar regulile are o relevanta in sensul ca e indicat sa le pun in ordine dupa numarul de variabile. Este adevarat sau era doar un tutorial scris de un cunoscator ca mine? :)
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4279
Locație: acasa , in pat

Trimis: Lun Noi 19, 2007 1:20 pm    Titlul subiectului:  

E adevarat, trebuie aranjate in ordine ...

La partea cu php-ul si situatiile ... e normal sa ai grija de fiecare situatie posibila (e mai secure si mai inteligent) cand scrii cod.

Joaca-te si tu cu ele, si vezi care e treaba ... incearca mai multe path-uri, muta-le ... e mai bine sa te prinzi singur care e treaba decat sa-ti zicem noi.
Sus  
ShD



Data înscrierii: 19/Noi/2007
Mesaje: 55

Trimis: Lun Noi 19, 2007 1:25 pm    Titlul subiectului:  

Mersi mult de sfaturi, ma apuc de voodoo in cateva ore cand ies de la munca si revin cu versiunea finala :) Nu ma las pana nu imi iese :D
Sus  
andrei009



Data înscrierii: 16/Mar/2007
Mesaje: 199

Trimis: Lun Noi 19, 2007 2:30 pm    Titlul subiectului:  

inca o idee, poti face si asa
Cod: RewriteRule ^([a-zA-Z0-9/]+)$ index.php?q=$1 [L]
iar in php ai variabila $_GET['q'] unde gasesti tot ce e introdus in adresa

de ex intri pe www.site.ro/eu/cs/profile/gallery/1 in variabila ai eu/cs/profile/gallery/1, dai un explode() la / si obtii un array
Cod: Array (
1 => "eu",
2 => "cs",
etc
)
asa e mult mai simplu si nu mai trebuie sa mai modifici .htaccess-ul pentru a adauga alte reguli cand ai alt url
Sus  
ShD



Data înscrierii: 19/Noi/2007
Mesaje: 55

Trimis: Lun Noi 19, 2007 5:03 pm    Titlul subiectului:  

deja devine voodoo mod_rewriteul asta. Care e diferenta in render time pentru cele doua? Pot calcula usor pentru explode dar mai putin pentru rewrite rules.
Sus  
ShD



Data înscrierii: 19/Noi/2007
Mesaje: 55

Trimis: Vin Noi 23, 2007 2:38 pm    Titlul subiectului:  

Eeh acum am o noua problema si iar am ajuns sa urasc conceptul de mod_rewrite.

Am doua linkuri cu acelasi numar de parametri dar diferiti intre ei:

index.php?navmode=ro&game=cs -> ro/cs/
index.php?navmode=ro&site=news -> ro/news/

Gues what? doar una din ele functioneaza, si anume cea pe care o pun prima.

adica daca fac rewrite pentru ro/cs/ la ro/news/ imi vede ca link index.php?navmode=ro&game=news ceea ce nu e tocmai bine. Ideeas?
Sus  
Quber



Data înscrierii: 27/Iun/2006
Mesaje: 757
Locație: localhost

Trimis: Vin Noi 23, 2007 3:14 pm    Titlul subiectului:  

Incearca asha nus sigur dar sper sa mearga :)


Cod: RewriteRule ro/cs(/?) index.php?navmode=ro&game=cs [L]
RewriteRule ro/news(/?) index.php?navmode=ro&site=news [L]
Sus  
ShD



Data înscrierii: 19/Noi/2007
Mesaje: 55

Trimis: Vin Noi 23, 2007 3:23 pm    Titlul subiectului:  

hope it works :) mersi
Sus  
kleampa



Data înscrierii: 10/Iul/2005
Mesaje: 2009
Locație: Bucuresti

Trimis: Vin Noi 23, 2007 4:51 pm    Titlul subiectului:  

in loc de L pune QSA iar la ultima regula din htacces pune QSA,L

L-u se pune doar la ultima regula
Sus  
Quber



Data înscrierii: 27/Iun/2006
Mesaje: 757
Locație: localhost

Trimis: Vin Noi 23, 2007 5:21 pm    Titlul subiectului:  

Eu de multe ori folosesc [L] - Last Rule se poate de folosit si [QSA,L]

Mai multe detalii Aici
Sus  
ShD



Data înscrierii: 19/Noi/2007
Mesaje: 55

Trimis: Sâm Noi 24, 2007 1:22 am    Titlul subiectului:  

Ca sa imi raspund la intrebarea de mai sus cu timpii de acces din apache mod_rewrite si php clean urls:

Am facut intregul re-write ai am trecut pe el. Din motive evidente am zis sa ma uit si eu ce se intampla, un log, o resursa, o aluna.

Pana la 1200 utilizatori simultan pe site toate bune si frumoase. Fericit de divina-mi realizare mi-am facut o cafea, am fumat o tigara am vb la un telefon cand ma suna un client nemultumit: Site-ul se misca infect.

Trag cu ochiul la resurse si tragedie: apache-ul manca mai multa memorie decat poate suporta o placa de baza. Prin urmare undo la tot si incercam cu php ;)
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4279
Locație: acasa , in pat

Trimis: Sâm Noi 24, 2007 1:51 am    Titlul subiectului:  

nu stiu de ce dar tind sa dau vina pe tine ...
si pe fisierul creat de tine.

adica apache-ul nu mananca multa memorie decat daca e neaparat nevoie.
daca ai un htaccess de 150 de kb la fiecare accesare ... e o problema serioasa.

si daca chiar apache reuseste sa pape memorie, eu zic ca se poate seta astfel incat acea memorie care nu mai e ocupata sa fie eliberata (ma indoiesc eu ca 4-8 GB de ram sunt umpluti de un apache cu 10000 de conexiuni).
Sus  
ShD



Data înscrierii: 19/Noi/2007
Mesaje: 55

Trimis: Sâm Noi 24, 2007 2:11 am    Titlul subiectului:  

pana la o solutie fiabila las linkurile greoaie :) ma mai joc cu apache as we speak dar nu cred ca voi ajunge prea departe.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Optimizare pentru motoarele de cautare (SEO)
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community