ia incearca in loc de ^([^-]*)-([^-]*)-([^-]*)-([^-]*)\.html$
asa
^([0-9]+)-([0-9]+)-([a-zA-Z0-9_-]+)-([a-zA-Z0-9_-]+)\.html$
si ai linkuri site.ro/?anul=.... sau site.ro/index.php?anul=.... ?
ia incearca in loc de ^([^-]*)-([^-]*)-([^-]*)-([^-]*)\.html$
asa
^([0-9]+)-([0-9]+)-([a-zA-Z0-9_-]+)-([a-zA-Z0-9_-]+)\.html$
si ai linkuri site.ro/?anul=.... sau site.ro/index.php?anul=.... ?
Tot citesc despre url rewrite si in mare am inteles, dar in mic nu-mi iese
Poate imi explicati si mie pt caz cat de cat concret:
Linkul este de forma:
www.numesite.ro/category.php?id=1 si numele categoriei ar fi "nume categorie"
Vreau sa rescriu linkul (si sa si mearga daca se poate) de forma:
www.numesite.ro/nume-categorie
Am scris in htacces: RewriteRule ^([A-Za-z0-9+_"]+)$ /gallery.php?cid=$1 [L]
si in php: href="nume categorie" (url-urile sunt generate dinamic).
Si acum linkul apare de forma: www.numesite.ro/nume categorie
evident am eroarea: The requested URL www.numesite.ro/nume categorie was not found on this server.
Ce trebuie sa fac ca sa mearga cum vreau eu? si sa apara in link "nume-categorie" nu "nume categorie"?
Nu stiu php, mai inteleg cate ceva din cod dar nu stiu sa scriu cod de la zero, asa ca va rog sa fiti blanzi![]()
Am un magazin online de Cosmetice romanesti si un portal de Afaceri
Salutare Diana,
Pentru:
Ai putea folosi ceva de genul (in cazul in care ai mai multe variabile pe primul loc, pui "cat" ca sa interpreteze category.php)numesite.ro/category.php?id=1
Sau in cazul in care nu ai mai multe variabile care sa duca tot acolo:RewriteRule ^cat/([A-Za-z0-9-]+)/([0-9]+)?$ category.php?numecategorie=$1&id=$2 [L]
RewriteRule ^([A-Za-z0-9-]+)/([0-9]+)?$ category.php?numecategorie=$1&id=$2 [L]
Acum sa luam altfel problema. Din link-ul pe care vrei sa il rescrii am doar variabila "id". Tu vrei sa intre numele categoriei. Bun, nu ar fi o problema. Ceea ce ti-am rescris mai sus e in cazul in care folosesti caractere care contin cifre si litere (pentru numele categoriei) si cifre pentru id-ul categoriei.
Hai sa-ti dau un exemplu de cum fac eu rescrierile.
In tabelul din baza de date, unde am categoriile, am pe langa titlul categoriei si titlul categoriei rescris. Astfel pot sa-l denumesc cum vreau eu si sa duca tot acolo fara a fi nevoit sa scot id-ul categoriei. Cand fac rescrierea folosesc doar numele categoriei rescris si o interpretez in locul id-ului.
Link:
-> domeniu.ro/nume-categorie
.htaccess (fara paginare):
-> RewriteRule ^([A-Za-z0-9-]+)/?$ category.php?numecategorie=$1 [L]
.htaccess (cu paginare - poate sa fie si cu extensia .htm):
-> RewriteRule ^([A-Za-z0-9-]+)/([0-9]+)?$ category.php?numecategorie=$1&page=$2 [L]
PHP:
-> Returnez din baza de date id-ul categoriei in functie de numele categoriei rescris si apoi fac alte selectii din db in functie de ce am nevoie pe acea pagina.
EDIT:
Folosesti smarty templates sau nu? Sa-ti dau cateva functii care sa iti modifice link-urile in functie de ce folosesti.Ce trebuie sa fac ca sa mearga cum vreau eu? si sa apara in link "nume-categorie" nu "nume categorie"?
Nu stiu php, mai inteleg cate ceva din cod dar nu stiu sa scriu cod de la zero, asa ca va rog sa fiti blanzi
Ultima modificare făcută de Gabriel Puscuta; 27th May 2008 la 12:58.
Da, m-am gandit si eu la asta, ca am vazut ca asa se face in wordpress si phpld. Dar cum fac sa rescriu automat categoria?In tabelul din baza de date, unde am categoriile, am pe langa titlul categoriei si titlul categoriei rescris. Astfel pot sa-l denumesc cum vreau eu si sa duca tot acolo fara a fi nevoit sa scot id-ul categoriei. Cand fac rescrierea folosesc doar numele categoriei rescris si o interpretez in locul id-ului.
De ex. "nume categorie" sa apara "nume-categorie" in alta coloana? Am gasit ceva in wordpress, dar evident ca nu merge, probabil fac eu ceva aiurea. Ce functie folosesti?
Acum am vazut editarea taNu folosesc smarty, am gasit un mic si simplu scriptulet care sa-mi faca o galerie de poze cu comentariu dedesubt. Stiu ca-s multe scripturi elaborate, cu url rewrite cu tot, dar eu aveam nevoie doar de ceva f simplu, cu add category si add photo in panoul de administrare.
Ultima modificare făcută de Diana; 27th May 2008 la 13:49.
Am un magazin online de Cosmetice romanesti si un portal de Afaceri
Ok.
Uite o functie simpla:
O pui pe undeva, ca mai apoi sa o poti chema unde ai nevoie.function rewrite_str($string)
{
return preg_replace('#[^A-Za-z0-9_-]#','-',$string);
}
Exemplu de folosire:
- Zicem ca scoatem din db categoriile si avem asa:
- unde folosesti functia rewrite_str($titlu_categorie) vei avea titlu categoriei de forma 'nume-categorie'while($row = mysql_fetch_array($result))
{
echo '<a href="domeniu.ro/'.rewrite_str($row["titlu_cat"]).'>'.$row["titlu_cat"].'</a><br>"';
}
Ultima modificare făcută de Gabriel Puscuta; 29th May 2008 la 13:44.
Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)