2014-01-16 16 views
0

許多教程描述如何設置RESTfull api,提到使用htaccess文件重寫url。 說實話,我不太明白這是否有用,至少在我的情況下。 讓我解釋一下。我正在構建一個預約web應用程序。用戶在db中存儲約會 - 當然這裏的意圖是,這是通過REST完成的。RESTful API,是一個帶有重寫規則的.htaccess文件,非常必要

日曆顯示在一個名爲calendar.php.From當下用戶頁面去那裏GET操作是通過骨幹網發起了一個名爲events.php頁:

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

Events.php是假設有代碼相關的db查詢 - 我說假設,因爲我還沒有在那裏寫任何代碼。要編寫應用程序,我在這裏研究這個tutorial

因此,這裏有我的2個問題:

  1. 你看到任何需要這裏的htaccess和重寫規則
  2. 第二個問題是,爲什麼在教程url屬性(代碼在部分中找到題爲骨幹瞻)已爲頁面只是事件(不包括擴展名)-in這種情況下htaccess的將是有意義的,但爲什麼擺在首位,在所有麻煩

回答

0

絕對沒有理由,一個「REST」應用程序的接口應該需要mod_rewrite或htaccess。

它通常只在想要追溯性地重寫例如舊的到新的URL(因爲有人搞砸了!)。

人們使用mod_rewrite來處理各種廢話,有時堆棧的核心部分已經做到了 - 例如將/ foo映射到/foo.php(mod_negotiation),或者堅持要求他們的實現讀取查詢字符串, URL看起來像PATH_INFO。

+0

我明白你的答案了。我想對我來說,你說什麼,甚至更多。我是否正確? –

+0

有一個基本的衝突,人們希望在文件系統中使用.php,但不在URL中。有多種方法可以完成這個 – covener

+0

你可以更具體一些,以及它如何與REST相關。 –

0

骨幹模型/集合使用AJAX和RESTful資源從服務器獲取和設置數據。例如collection.fetch()將發送GET events.php以獲取所有項目。並且model.save()將發送POST events.phpPUT events.php/1(其中1是該模型的ID)。另外,當您需要從服務器獲取一個特定型號數據時,它會發送GET events.php/1(其中1是該型號的ID)。因此,您可能完全不使用.htaccess文件來處理您的簡單請求。您可以在PHP中獲得並從$_SERVER['PATH_INFO']變量ID

+0

所以本教程的作者(http://blog.shinetech.com/2011/08/05/building-a-shared-calendar-with-backbone-js-and-fullcalendar-a-step-by-step-教程/)他可能已經用作URL,events.php.So結束,URL重寫僅僅是爲了更友好的URL而完成的 - 這就是它的意義我認爲 –

+0

教程在rails上使用ruby,所以它沒有使用apache和.htaccess來創建'events' url。有了Apache,我們不能使用PHP文件作爲URL,所以我們試圖欺騙。htaccess和mod重寫將所有來自url的請求發送到一個將處理URL路由的文件。 –

+0

從哪裏得出結論,該教程使用ruby。我在教程中看到的代碼是HTML和JS(骨幹)。可以將教程與PHP/MySQL一起使用嗎? –