2010-11-13 142 views
4

我有一個指數控制器名稱的index.php目錄下/系統/應用/控制器/笨指數控制器路由問題

。我將.htacesss

RewriteEngine敘述上 的RewriteCond $ 1規則!^ (包括|| index.php | images | robots.txt) RewriteRule ^(。*)$ /index.php/$1 [L]

並且我將$ route ['default_controller'] =「index」;

and i config $ config ['index_page'] =「」;

和我有一個指數作用在我的控制器

當我訪問 http://domain/index/index/en

將有404

當我訪問http://domain/index/index/index/en將被罰款

我嘗試回聲$這個 - > URI- >在庫/ Router.php段

覺得,如果我索引/索引/ EN請求時,它僅返回指數和連接

如果我請求索引/索引/索引/ EN使其返回索引,索引和連接,

爲CI路線邏輯第一段是控制器名稱和第二個是動作

能不能解決??? ?只是不想要太長的網址在主頁

+0

,如果你訪問一個控制器發生了什麼** **沒有所謂的「指數」? – Ross 2010-11-13 18:15:07

+0

這很好,但我不想改變,而不是索引客戶端不像家或主,它必須非常索引 – user192344 2010-11-13 19:30:42

回答

10

documentation實際上指出,控制器不能被命名爲'索引',因爲它是一個保留字。

如果您的目標是獲得漂亮的URL,您應該保留原來的默認控制器,並將$ config [「index_page」]變量留空。

然後建立這個.htaccess文件:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L,QSA] 

這將使CI和你一個幸福的情侶...

+0

THX,只是在文件中的一個小問題「不要命名你的控制器功能任何這些:例如索引」 ,但我只命名帶有索引的控制器,爲什麼沒有任何控制器有一個稱爲索引的函數的問題? – user192344 2010-11-30 09:02:49

+0

我認爲這是文件解釋的問題;這不是你不能命名'索引'的控制器功能。只是控制器類名稱。在http://codeigniter.com/user_guide/general/controllers.html上閱讀控制器功能的文檔時應該清楚這一點。 – Repox 2010-11-30 09:51:21