有条件的Apache重写

时间:2018-10-22 10:27:34

标签: apache .htaccess mod-rewrite url-rewriting

我有一些URL路径,形式为:

/cat/_CNAME_(/_SUB_(/_SUB_))(/_ATR_/_ATRVAL_(/_ATR_/ATRVAL_))(/page/_PNUM_)

需要将其转换为:

/cat/_CNAME_(/_SUB_(/_SUB_))(/page/_PNUM_)?(_ATR_=_ATRVAL_(&_ATR_=_ATRVAL_))

一些说明:

  • CNAME SUB ATR ATRVAL PNUM 是动态的< / li>
  • SUB ATR => ATRVAL ,页面=> PNUM 是可选的,而离开 CNAME < / em>作为网址路径中唯一的必填项
  • SUB ATR => ATRVAL 可以多次出现
  • SUB ATR => ATRVAL 分开的唯一方法是, ATR 名称始终以“ attr_”或“ prod_”,而其他任何术语都没有该前缀

意味着应转换以下路径:

这个

/cat/magazines/lifestyle/attr_shape/portrait/prod_cat/lifestyle/

/cat/magazines/lifestyle/?attr_shape=portrait&prod_cat=lifestyle

这个

/cat/magazines/attr_shape/landscape/page/5/

/cat/magazines/page/5?attr_shape=landscape

这个

/cat/magazines/lifestyle/attr_shape/square/attr_size/20x20/page/2

/cat/magazines/lifestyle/page/2?attr_shape=square&attr_size=20x20

0 个答案:

没有答案