Rescrierea URL in ceva mai citibil
Moderatori: Moderatori, Start Moderator
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
Rescrierea de URL-uri se face din Apache, adica din server-ul de web.
Cand tu scrii o adresa in browser, de fapt initializezi un request, care cere ceva server-ului de web.
Daca tu scrii in browser
www.site.com/?id=2
atunci server-ul de web primeste ca si request, pe langa "datoria de a afisa pagina ta web" un $_GET['id'] = 2
Mod rewrite este un modul Apache (care trebuie activat, daca nu este) care "spune server-ului" de web ca urmeaza sa faca o redirectionare.. Pentru a face aceasta redirectionare este nevoie de niste reguli (RewriteRule) care spun server-ului ce si cum sa redirectioneze.
Aceste reguli se scriu in fisierul .htaccess (care de obicei se afla in radacina site-ului)
De exemplu
# este nevoie sa zici ca este pornit rewrite-ul
# adica, sa spui Apache-ului ca "de aici inainte vei redirectiona"
RewriteEngine on
# o regula simpla
RewriteRule ^whatever/(.*)$ index.php?page=$1 [L]
Acum, daca scriem in browser www.site.com/whatever/ceva
de fapt server-ul de web va primi un request
$_GET['page'] = 'ceva'
Atentie, daca folder-ul whatever exista ar trebui sa ai si o conditionare
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^whatever/(.*)$ index.php?page=$1 [L]
Asta zice:
Daca fisierul pe care il accesezi din browser
- nu este un fisier valid
- nu este un director valid
atunci executa redirectionarea
Vezi
http://www.workingwith.me.uk/articles/s ... od_rewrite
si cauta pe google "rewrite examples"
Cand tu scrii o adresa in browser, de fapt initializezi un request, care cere ceva server-ului de web.
Daca tu scrii in browser
www.site.com/?id=2
atunci server-ul de web primeste ca si request, pe langa "datoria de a afisa pagina ta web" un $_GET['id'] = 2
Mod rewrite este un modul Apache (care trebuie activat, daca nu este) care "spune server-ului" de web ca urmeaza sa faca o redirectionare.. Pentru a face aceasta redirectionare este nevoie de niste reguli (RewriteRule) care spun server-ului ce si cum sa redirectioneze.
Aceste reguli se scriu in fisierul .htaccess (care de obicei se afla in radacina site-ului)
De exemplu
# este nevoie sa zici ca este pornit rewrite-ul
# adica, sa spui Apache-ului ca "de aici inainte vei redirectiona"
RewriteEngine on
# o regula simpla
RewriteRule ^whatever/(.*)$ index.php?page=$1 [L]
Acum, daca scriem in browser www.site.com/whatever/ceva
de fapt server-ul de web va primi un request
$_GET['page'] = 'ceva'
Atentie, daca folder-ul whatever exista ar trebui sa ai si o conditionare
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^whatever/(.*)$ index.php?page=$1 [L]
Asta zice:
Daca fisierul pe care il accesezi din browser
- nu este un fisier valid
- nu este un director valid
atunci executa redirectionarea
Vezi
http://www.workingwith.me.uk/articles/s ... od_rewrite
si cauta pe google "rewrite examples"
vectorialpx, multumesc de raspuns, totusi nu gasesc solutia pentru problema mea. Daca e sa rezum, am nevoie sa inlocuiesc partea din url care reprezinta un ID cu denumire atasata acestui ID in baza de date. Adica ?id=1 sa nu se transforme in site.ro/1/, ci in site.ro/Carti-despre-php. Dupa cum te-ai priceput, tabela din baza de date arata cam asa:
id | Denumire
---------------------------
1 | Carti despre Php
2 | Carti despre mysql
Sper ca mi-am expus corect gandurile. Stiu ca se poate de realizat, insa nu-mi dau seama cum. Am vazut deja ceva asemanator implementat la WordPress
id | Denumire
---------------------------
1 | Carti despre Php
2 | Carti despre mysql
Sper ca mi-am expus corect gandurile. Stiu ca se poate de realizat, insa nu-mi dau seama cum. Am vazut deja ceva asemanator implementat la WordPress
-
quadmachine
- Senior Member
- Mesaje: 807
- Membru din: Sâm Iul 10, 2010 4:58 pm
- Localitate: Ploiesti
- Contact:
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
-
quadmachine
- Senior Member
- Mesaje: 807
- Membru din: Sâm Iul 10, 2010 4:58 pm
- Localitate: Ploiesti
- Contact:
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 24 vizitatori