【发布时间】:2017-09-20 12:24:43
【问题描述】:
我正在尝试创建一个 REST API,它将接受多个参数作为分段 url
这是我当前的重写规则,它工作正常,但只处理一个分段变量。这里只有一个项目类别 id 进入分段。
^products/categories/([0-9]+)/?$ products.php?category_id=$1 [NC,L]
products/categories/?category_id=10
我想要做的是,我将传递一些其他的 id,比如 brand_id 和 color id 作为这样的分段 url
^products/categories/([0-9]+)/([0-9]*)/([0-9]*)?$ products.php?category_id=$1 [NC,L]
并期望 url 像下面这样重写
products/categories/?category_id=10&brand_id=5&color_id=7.
当且仅当我提供了所有 3 个 id 并且如果我错过任何一个 id 时,上述重写工作正常。在我的情况下,请求中只有类别 ID 是强制性的,所有其他项目都是可选的。如何更改此处的重写 url 以使第二个和第三个变量成为可选项?
谢谢
【问题讨论】:
-
你基本上在那里 - 假设品牌和颜色的顺序总是一致的 - 你只需要使正斜杠可选 - 例如:
^products/categories/([0-9]+)/?([0-9]*)/?([0-9]*)/?$ products.php?category_id=$1&brand_id=$2&color_id=$3 -
是的..它工作。谢谢CD001。甚至我也在寻找一个可以使第二个和第三个参数可选的规则。
标签: php apache .htaccess mod-rewrite url-rewriting