RESTful API是一个.htaccess文件,其中包含重写规则

时间:2014-01-16 14:18:35

标签: apache .htaccess mod-rewrite backbone.js

许多描述如何设置RESTfull api的教程都提到使用htaccess文件来重写url。 说实话,我不太明白这有用的地方,至少在我的情况下。 让我解释一下。我正在建立一个约会网络应用程序。用户在数据库中存储约会 - 当然这里的意图是通过REST完成。

日历显示在名为calendar.php的页面中。从用户到那里开始,GET操作由骨干发起到名为events.php的页面:

   var Events = Backbone.Collection.extend({
    model: Event,
    url: 'events.php'
     }); 

Events.php假设有代码相关的数据库查询 - 我想假设,因为我还没有编写任何代码。要编写应用程序我在这里研究tutorial

所以这是我的两个问题:

  1. 你认为这里有什么需要htaccess和重写规则
  2. 第二个问题是为什么教程中的url属性(代码在标题为引入Backbone 的部分中找到)作为页面只有事件(没有扩展名) - 在这种情况下htaccess会有道理,但为什么一开始就麻烦

2 个答案:

答案 0 :(得分:0)

应用程序的“REST”接口绝对没有理由需要mod_rewrite或htaccess。

通常只有在您想要追溯重写时才有用。旧的到新的URL(因为有人搞砸了!)。

人们使用mod_rewrite进行各种废话,有时候堆栈的核心部分已经这样做了 - 比如将/ foo映射到/foo.php(mod_negotiation)或坚持他们的实现读取查询字符串但是他们的URL是看起来像PATH_INFO。

答案 1 :(得分:0)

Backbone模型/集合使用AJAX和RESTful资源从服务器获取和设置数据。例如,collection.fetch()会发送GET events.php来获取所有项目。 model.save()会发送POST events.phpPUT events.php/1(其中1是模型的ID)。此外,当您只需从服务器获取一个特定模型数据时,它将发送GET events.php/1(其中1是模型的ID)。因此,您可能根本不使用.htaccess文件来处理简单请求。您可以从ID中的$_SERVER['PATH_INFO']变量获取并PHP