2011-04-27 76 views
0

我正在嘗試將我的CI 1.7.2應用程序遷移到2.0.2。我已經到了我的默認控制器和頁面加載正確的地步。 Yey!在CodeIgniter中,始終加載默認控制器

但是,默認控制器是所有加載的。例如:

myapp/ -> loads default controller (one) 
myapp/one -> loads default controller (one) 
myapp/two -> loads default controller (one) 
myapp/three -> loads default controller (one) 

.htaccess是:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule (.*) index.php/$1 [L] 
</IfModule> 
<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 

config.php是:

$config['base_url'] = 'http://localhost/myapp/branches/Source%20Code/'; 
$config['index_page']  = ''; 
$config['uri_protocol'] = 'QUERY_STRING'; 

順便說一句,我已經試過了所有URI PROTOCOL其他可能值,他們給我「The page you requested was not found.」

Final LY,我routes.php是:

$route['default_controller'] = "one"; 

我也試圖改變default_controller「二」,它可以正確地裝入「兩節」控制器。但是,當default_controller是「one」,我在地址欄中鍵入「myapp/two」時,它仍然加載「one」

我錯過了什麼? :)

+0

重要問題:到目前爲止,您是否遵循過所有*** [升級步驟](http://codeigniter.com/user_guide/installation/upgrading.html)?這個問題聽起來含糊不清,我認爲這是Codeigniter的簡單... – 2011-04-27 07:48:10

+0

根據這個線程http://codeigniter.com/forums/viewthread/187501/,在官方論壇中,你已經解決了這個問題? – Repox 2011-04-27 09:01:49

+0

@Repox:是的,但解決方案與我所希望的不同。我使用QUERY_STRING感到不舒服。我正在尋找類似tgriesser下面的答案。 – Obay 2011-04-27 09:24:23

回答

2

聽起來像一個htaccess的問題。試着改變你的Mod重寫本:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /myapp/index.php/$1 [L] 
</IfModule> 

,然後更改$config['uri_protocol']AUTO

+0

謝謝,但沒有解決它。實際上,爲了簡單起見,我在這個問題中改變了base_url。但實際的base_url實際上就像它現在,在上面(已編輯)。所以我嘗試了你的建議,但沒有奏效。我也嘗試過'RewriteRule ^(。*)$ /myapp/branches/Source%20Code/index.php/$1 [L]',但仍然無法工作。任何其他想法? :) – Obay 2011-04-27 07:14:54

+0

確定它是否是htaccess問題的最佳方法是將index_page更改回index.php,並查看控制器是否正確加載。如果他們這樣做,那麼它是htaccess,如果他們不這樣做,那麼它是在你的PHP中。 – tgriesser 2011-04-28 01:58:15

0

我覺得uri_protocol => 'PATH_INFO' 不支持

因此,改變試圖

$配置[ 'uri_protocol'] = 'QUERY_STRING'; //應用/配置/ config.php中

然後, 在你,htaccess的改變

重寫規則(。*)的index.php/$ 1 [L]

重寫規則^(。*)$的index.php?$ 1 [L]