2009-11-08 50 views
1

我正在嘗試開發一個帶有CodeIgniter的基本CMS,供我自己在項目中使用,但遇到了這個問題。另外,我對CI很陌生,但在ZF和OOP PHP方面有了幾年時間。CodeIgniter後端前端.htaccess路由器

首先,讓我告訴你我的文件結構:

  • 的index.php(前端引導)
  • backend.php(後端引導)
  • 的.htaccess
  • 系統(CI核心)
    • 應用
      • 後端
        • [...] MVC相關的文件和文件夾(配置器,控制器,模型,視圖...)
      • 前端
        • [...] MVC相關的文件和文件夾(配置器,控制器,模型,視圖...)
    • [...](高速緩存,數據庫,腳手架...)

確定。我可以使用.htaccess工作index.php或backend.php路由,但無法使它與兩者一起工作。下面是的.htaccess代碼:

RewriteEngine on 
RewriteBase/

# Hide the application and system directories by redirecting the request to index.php (and throwing a 404 error) 
RewriteRule ^(application|system|\.svn) index.php/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php/$1 [QSA,L] 

嗯,我需要的是以下幾點:

  • www.domain.com/backend/controller/action/parameters(backend.php路由)
  • www.domain.com/controller/action/parameters(index.php routing)

希望我解釋清楚。

任何人都可以幫忙嗎? :)

此致敬意。

回答

1

經過一番更搜索,我發現一個very nice article記錄如何做我需要的。這也解釋了3種方式後端/前端在CI:

  • 單獨的應用程序
  • 子目錄
  • HMVC(分層模型 - 視圖 - 控制器)

HMVC符合我的需要,但我會先嚐試一下子目錄。 :)

0

基本上你想要並排運行兩個CodeIgniter應用程序,一個在根中,另一個在backend/。有幾個方法可以做到這一點,但最簡單的就是增加一個重寫規則你的第二個實例(取下大號 AST標誌):

RewriteRule ^backend/(.*)$ /backend/index.php/$1 [QSA] 
RewriteRule ^(.*)$ index.php/$1 [QSA,L] 
+0

這樣做的方式,如果我叫的「http://本地主機/ ci_cms /後端」我知道該網址「/index.php/backend」 404響應。 它必須指向backend.php本身一樣請求的其餘部分則到index.php。 是我的/系統/應用/樹形結構正確:) – 2009-11-08 21:21:22

+0

的URI後端將類似於任何CI路線,除了與/後端/在它:'site.com /後端/路由/ parameter'。 – 2009-11-11 21:01:30

+0

至於結構,對於這個建議的工作,你需要CI的兩個副本(我通常不這樣做,但過去已經原型化),每個根目錄有一個副本。 HMVC方法是我在大多數項目中最終使用的方法,因爲維護一個CI安裝非常簡單。 – 2009-11-11 21:02:50