2008-12-31 59 views
6

我是網絡開發(和大學)的學生,所以我很抱歉,如果這聽起來天真和冒犯,我當然不是這個意思。我的經驗是PHP和一個小型項目(一個榮耀的轉換日程表),我希望學習一個更高級別的框架以減輕代碼負擔。到目前爲止,我看了CakePHP Symfony Django和Rails。Django,Rails路由...點?

使用PHP,URL非常簡單地映射到文件,並且它「剛剛工作」。這對服務器來說很快,而且直觀。但是對於所有這些框架,通過使URL映射到不同的函數並將這些參數路由到不同文件中的不同變量,可以使URL「變得漂亮」。

我正在閱讀的「The Rails Way」一書承認,這是狗慢,並且是大型項目中大多數表現痛苦的原因。我的問題是「爲什麼要擺在首位?」? url-maps-to-a-file範例(或mod_rewrite指向單個文件)中是否存在特定點,它需要正則表達式和複雜的路由方案?我是否錯過了不使用它們的東西?

在此先感謝!

回答

6
  • 網址應該很容易記住並說出來。用戶在看到該URL時應該知道該期待什麼。直接將URL映射到文件並不總是允許的。
  • 您可能想要爲顯示的相同或至少類似的信息使用不同的URL。如果您的服務器強制您使用1 url < - > 1文件映射,則需要創建其他文件,其所有功能都將重定向到其他文件。或者你使用像mod_rewrite這樣的東西,這是不容易的,然後Rails的網址映射。
  • 在我的應用程序一個我使用的URL看起來像http://www.example.com/用戶名/一些額外的東西/。這也可以用mod_rewrite來完成,但至少對我來說,在django項目中配置url更容易,然後在我運行應用程序的每個apache實例中配置。

只是我的2美分...

0

此外,路由器就像mod_rewrite,但更靈活。它們不是正則表達式綁定的,因此對於不同類型的路由有更多的選項。

0

取決於您的應用程序有多大。我們有一個相當大的應用程序(50多個型號),它不會給我們帶來任何問題。當它發生時,我們會擔心它。

2

Django網址也是非常可定製的。使用像Code Igniter這樣的PHP框架(我不確定Rails)強制進入/ class/method/extra/URL結構。雖然這可能適用於小型項目和應用程序,但只要您嘗試使其更大/更動態,就會遇到問題,並且必須重寫某些框架代碼才能處理它。

3

將應用程序代碼存儲在Web服務器的文檔樹中是一個安全問題。

  • 配置不當可能會不小心泄露的源代碼給遊客通過安全漏洞注入
  • 文件是立即執行的HTTP請求
  • 備份文件(例如創建通過文本編輯器)可以揭示代碼或配置錯誤的情況下是可執行的
  • ,管理員未能刪除舊文件可以揭示意想不到的功能
  • 請求庫文件必須被明確拒絕
  • 網址透露執行細節(這語言/框架被使用)

請注意,只要其他事情沒有出錯(以及其中一些錯誤甚至會出現嚴重錯誤),上述所有內容都不是問題。但是總會出現問題,多餘的防線也不錯。

6

大部分已經被覆蓋,但沒有人提到過SEO。谷歌對網址本身有很大的影響,如果這個網址是widgets.com/browse.php?17,這不是很友好。如果您的網址爲widgets.com/products/buttons/,這會對您的按鈕頁面排名產生積極影響