我无法掌握处理 RESTful url 的最正确方法。
我有这样的网址:
http://localhost/products
http://localhost/products/123
http://localhost/products/123/color
起初:
http://localhost/index.php?handler=products&productID=123&additional=color
至于现在我正在使用 mod_rewrite:
RewriteRule ^([^/]*)([/])?([^/]*)?([/])?(.*)$ /index.php?handler=$1&productID=$3&additional=$5 [L,QSA]
然后我将 index.php 中的请求拼凑在一起,例如:
if ($_GET['handler'] == 'products' && isset($_GET['productID'])) {
// get product by its id.
}
我已经看到一些人将 GET 查询创建为一个字符串,例如:
if ($_GET['handler'] == 'products/123/color')
然后,例如,您是否使用正则表达式从查询字符串中获取值?
这是处理这些网址的更好方法吗?这些不同方法的优缺点是什么?有没有更好的办法?