我正在为 CodeIgniter 使用 Phil Sturgeon 的 REST 服务器,并希望修改功能以便支持以下 URL:
http://api.example.com/users
http://api.example.com/users/1
分别获取用户列表和单个用户,而不是它支持的那些:
http://api.example.com/users
http://api.example.com/users?id=1
我在他的博客上读到,这应该可以使用 mod_rewrite,但无法按预期工作。
默认的 CodeIgniter .htaccess 如下所示:
RewriteEngine on
RewriteCond $1 !^(index\.php|css|images|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
我已经尝试添加自己的规则来尝试实现此功能。这是我希望正常工作的一个。它被放置在 RewriteEngine 激活之后和 CodeIgniter 规则之前。
RewriteRule ^users/([0-9+]) /users?id=$1 [NC]
我认为这将级联到下一个规则,该规则将通过 CodeIgniter 路由,然后点击正确的users.php
控制器,然后是index_get
方法(由 REST 服务器重新映射)。
相反,我收到一个“未知方法”错误 - 似乎 CodeIgniter 试图将用户整数用作函数,例如users/12
它试图12()
在users.php
.
有谁知道这里出了什么问题,或者可以推荐解决这个问题的方法?