[英]URL Rewriting htaccess Rules - Apache
我正在尝试创建一个REST API,该API可以接受多个参数作为分段URL
这是我当前的重写规则,可以正常工作,但只处理一个分段变量,分段中只有一个项目类别ID。
^products/categories/([0-9]+)/?$ products.php?category_id=$1 [NC,L]
products/categories/?category_id=10
Iam想要做的是,我将像brand_id和color id这样的其他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,以使第二个和第三个变量成为可选项目?
谢谢
请参阅以下示例
您的网址http://test.com/products/categories/10/5/7
HTACCESS
RewriteRule ^产品/类别/([[0-9] +)/([0-9] )/([0-9] )?$ index.php?category_id = $ 1&brand_id = $ 2&color_id = $ 3 [L,QSA]
您可以获取所有3个参数
如果要为参数创建动态规则,请检查以下内容
对于单个参数(category_id)
RewriteRule ^产品/类别/([[0-9] +)?$ index.php?category_id = $ 1 [L,QSA]
对于两个参数(category_id和brand_id)
RewriteRule ^产品/类别/([[0-9] +)/([0-9] *)?$ index.php?category_id = $ 1&brand_id = $ 2 [L,QSA]
对于三个参数(category_id,brand_id和color_id)
RewriteRule ^产品/类别/([[0-9] +)/([0-9] )/([0-9] )?$ index.php?category_id = $ 1&brand_id = $ 2&color_id = $ 3 [L,QSA]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.