2015-10-05 12 views
0

我爲我的PHP項目使用代碼Igniter。我想在我的網站中提供這樣的條款,以便用戶可以創建自己的新頁面,並直接從domain.com/their_page_name訪問它們。在CodeIgniter中訪問domain.com/ <dynamic_page_name>格式的動態鏈接

但是,我的開發人員提出了一個擔憂,即以domain.com/格式顯示的1000個動態鏈接「不利於網站性能」。大約10-15頁,沒關係。但是,除此之外,它會影響網站的性能。

因此,他們提出,URL格式應該像www.domain.com/something/page_name(在這裏,「東西」是控制器的名字,因爲他們提到它)

但是,我真的不能犧牲我的框架和我的要求。

有沒有什麼辦法可以實現「www.domain.com/page_name」的格式而不會影響網站的性能?

在此先感謝。

+0

您可以使用'$ id'這樣的uri片段來幫助更輕鬆地搜索頁面。許多流行的門戶使用這個概念。例如'domain.com/32767/page_unique_name'或類似的。 – Tpojka

回答

0

沒有問題www.domain.com \ userpagename。

這不是一個框架問題。 Codeigniter支持這種類型的URL。您可以創建n個URL。性能將影響您如何處理特定控制器或特定功能。 如果可能是10可能是100,則以相同的方式工作。

你只需要相應地放置路線。

$ route [default_controller] = userurl; $ route [userurl /(:any)]= userurl yourfunction/$ 1`;

+0

非常感謝sayak ..只有一個疑問......有了這個路由,我可以從domain.com/sayak訪問一個頁面,這樣我的最終着陸URL將是相同的(domain.com/sayak)? –

0

看來你需要的是動態控制器,這可以使用Codeigniter的函數_remap()構建完成。

一個代碼示例:

public function _remap($method){ 
    if($method != null){ 
      $this->yourFunction($method); 
    } else { 
      // handle the error as you like 
    } 
} 

public function yourFunction($key){ 
     // your code logic here 
} 

所有這些代碼塊進入你的控制器內。

編輯:其性能與使用domain.com/controller/method時相同。如上所述,重要的是你如何處理數據。