簡體   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