RewriteRule ^([A-Za-z0-9_\-]+)$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+)/$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)/$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)$ /viewbuyproduct.php?1=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)/$ /viewbuyproduct.php?1=$1 [L] 

Mul on järgmised reeglid. Nad töötavad sel viisil:

if url = /a or /a/ or /a/a or /a/a/ go to file userviewproducts.php and if url = /a/a/a or /a/a/a/ go to file viewbuyproduct.php 

See töötab nii, nagu mul vaja on, aga näen siin terminit KOOD-LÕHN ja tahan selle lühemaks kirjutada. Kas pluss iga vastus =)

  • Igatahes usun, et seda tüüpi küsimused tuleks postitada Stackoverflow'i. Sealt saate rohkem vastuseid väärtusega.

Proovi seda:

RewriteRule ^([A-Za-z0-9_\-]+)/?$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)/?$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)/?$ /viewbuyproduct.php?1=$1 [L] 

See on lühem.

  • 1 Häda, jätsin lehe 20 minutiks avatuks ja postitasin lõpuks sama vastuse nagu teie;)

Lugege regulaarselt avaldistest. Nende parem mõistmine aitab teil siin ja tulevikus lühemaid reegleid kirjutada.

Regulaaravaldise tööriista abil saate katsetada erinevaid reegleid ja vaadata, kuidas need sobivad.

Olen kindel, et saate selle kahele reale - üks iga soovitud tulemuse jaoks. Ridad võivad siiski pikemad olla :-)

Seda võiks veelgi lihtsustada järgmiselt:

RewriteRule ^([\w-]+(/[\w-]+)?)/?$ /userviewproducts.php?category=$1 [L] RewriteRule ^([\w-]+/[\w-]+/[\w-]+)/?$ /viewbuyproduct.php?1=$1 [L] 

\w on lühikirjeldus [A-Za-z0-9_].

The - (sidekriips) pole vaja kasutada, kui seda kasutatakse märkide klassi alguses või lõpus.

The ? lõpus muudab eelneva kaldkriipsu valikuliseks.

Lõpuks ühendatakse kaks esimest reeglit (asendused), muutes mustri teise osa valikuliseks. st. (/[\w-]+)?. $1 vastab ikkagi kogu URL-i teele, vähem kui kaldkriips (kui seda on).

none: Charles Robertson | none