繁体   English   中英

URL重写htaccess规则-Apache

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM