2011-06-03 50 views
1

你好,stackoverflow社區,具有多個應用程序的CodeIgniter URI路由(htaccess)

我有我的CodeIgniter有點問題。 我在我的應用程序文件夾中使用了兩個應用程序。第一個是前端,第二個是後端。

在我的根目錄中,我有兩個.php文件。一個通向前端目錄的index.php和一個通向後端目錄的backend.php。

由於我使用mod重寫以獲取乾淨的URL,因此存在問題。 URL結構如下:www.domain.com/controller/action

這是我的前端應用程序中的控制器的行爲。

我使用htacces來擺脫域和控制器之間的/index.php/。 訪問我的後臺應用程序我想我的網址是這樣www.domain.com/admin/controller/action因此

我有這樣的重寫規則:

RewriteCond %{REQUEST_URI} ^admin.* 
RewriteRule ^admin/(.*)$ /backend.php?/$1 [L] 

現在的問題: 笨假設那/後端/是第一個URI段,並且想把它當作我的控制器。

我是否真的必須編輯CodeIgniter的核心,以便告訴它不要使用服務器請求URI或者是否有另一個技巧?

由於提前, 托馬斯

回答

1

這實在是行不通的。查看需要設置的常量的config/config.php和config/settings.php等...您確實需要在單獨的「應用程序」目錄中運行每個應用程序。這也是值得問自己,如果他們甚至需要'獨立'的應用程序...

基本上,停止沿着這條路,而你仍然可以,它會導致心碎,和令人恐懼的代碼大量。

+0

感謝您的答案=) 我的意圖是分裂前端和後端,以便能夠重用我的後端其他項目。你會建議什麼? – Thomas 2011-06-03 16:01:46

+0

使用CI可愛的新「包」功能,它可以讓您重新使用某些代碼,或者爲充當REST API的CI構建另一個「應用程序」。 CI的軟件包文檔很難找到,但是這裏是PS自己描述他們做什麼的東西:http://philsturgeon.co.uk/blog/2010/04/codeigniter-packages-modules。在兩個選項中(有可能更多),我會去一個API :) – 2011-06-04 10:16:16

0

不是有兩個應用程序文件夾中,我建議有所謂的「管理員」的控制器內的文件夾,也可以讓你modelsviews(甚至libraries)命名爲「管理員」中的文件夾,然後您可以拉出來的這項目並轉移到其他項目。

這將允許您只使用標準rewrite從URL中刪除index.php,並且domain.com/admin將指向控制器中的管理員文件夾。

您只需要確保在根控制器文件夾內沒有名爲'admin.php'的控制器,否則您將遇到問題。

欲瞭解更多信息,請看CI文檔中的Organizing Your Controllers into Sub-folders

另請注意,開箱即用的MVC框架可能並不總是最適合用於創建CMS。通常,MVC框架最適用於快速創建具有相當靜態的Web應用程序,該應用程序指向特定的controllers。CMS的另一方面傾向於完全控制網站,這導致數據庫驅動的路線,通常不需要典型的controllers,除非你有很大的修改路線系統。