使用正则表达式的modrewrite使其更简单

时间:2014-03-03 12:56:51

标签: regex mod-rewrite

大家好我正在尝试为这样的页面清理我的mod重写:

sales/provider/all/name=asc/page=1
sales/provider/all/name=desc/page=1

目前,我正在使用新行代码:

  RewriteRule ^sales/provider/all/name=asc/page=([0-9]+)?$ /sales.php?sort=name&order=asc&view=provider&provider_id=all&page=$1 [N,NC,QSA]

  RewriteRule ^sales/provider/all/name=desc/page=([0-9]+)?$ /sales.php?sort=name&order=desc&view=provider&provider_id=all&page=$1 [N,NC,QSA]

使用正则表达式获取“名称”和“asc”或“desc”的最简单方法是什么,这样我就可以只有一个规则而不是加载它们。

2 个答案:

答案 0 :(得分:1)

RewriteRule ^sales/provider/all/name=(asc|desc)/page=([0-9]+)?$ /sales.php?sort=name&order=$1&view=provider&provider_id=all&page=$2 [N,NC,QSA]

答案 1 :(得分:0)

您应该尽可能多地从原始URI中捕获而不是重复它:

RewriteRule ^sales/(provider)/(all)/([^=]+)=([^/]+)/(page=[0-9]+)/?$ /sales.php?sort=$3&order=$4&view=$1&provider_id=$2&$4 [L,NC,QSA]