2010-08-31 59 views
0

我想知道如果我的CI設置有問題。如果我加載base_url,即http://localhost/~User/project/ 那麼它加載完美,將index.php添加到默認控制器之前。然而, 我的配置文件有Codeigniter設置

$config['index_page'] = ''; 

作爲測試我回到這個值來「的index.php」。當我在此之後加載base_url時,它返回:http://localhost/~User/project/index.php/index.php/controller/method

這是我期望的嗎?我的.htaccess文件存在很大問題,似乎無法正常工作。我發佈這個作爲一個單獨的問題,因爲這兩個是無關的。

更新:我現在得到.htaccess的工作和index.php已經消失,但只有如鍵入完整的URL。

如果我只輸入base_url,那麼它會加載默認控制器,但仍然會將index.php添加到字符串中。

爲了澄清...

如果鍵入: http://localhost/~User/project/controller/method 一切正常和網址保持完全一樣。同樣,如果我遵循相對鏈接,那麼正確的控制器和方法將加載URL中出現的index.php。

但是,如果我只類型: http://localhost/~User/project 它重定向我 http://localhost/~User/project/index.php/controller/method

控制器是,我已經安裝在我的配置文件默認設置,我還設置

$this->config['index_page'] = ''; 

回答

0

你是否按照this tutorial來信?

+0

是的,我有。這正是我試圖使用的.htaccess文件。我甚至嘗試徹底刪除.htaccess,並將其建議直接添加到我的httpd.conf文件中。那也行不通。 – musoNic80 2010-08-31 17:33:30

+0

重新閱讀您的文章後,我大多不確定問題所在。你期望看到index.php?如果沒有,請嘗試使用這個htaccess,而不是該頁面上的那個: http://snipplr.com/view/5966/codeigniter-htaccess/ – treeface 2010-08-31 17:52:39

+0

@treeface我不期待看到index.php!請參閱我的更新op – musoNic80 2010-08-31 18:07:04

0

嘗試使用下面的.htaccess文件,它從來沒有讓我失望,到目前爲止:

<IfModule mod_rewrite.c> 

     Options +FollowSymLinks 
     RewriteEngine on 

     # Send request via index.php (again, not if its a real file or folder) 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteCond %{REQUEST_FILENAME} !-d 

     <IfModule mod_php5.c> 
       RewriteRule ^(.*)$ index.php/$1 [L] 
     </IfModule> 

     <IfModule !mod_php5.c> 
       RewriteRule ^(.*)$ index.php?/$1 [L] 
     </IfModule> 

</IfModule> 
0

解決:

確定這讓我覺得很愚蠢,但我發現這個問題的原因。我在MY_Controller中隱藏了一個我完全被遺忘的重定向函數。因爲之前我無法使用.htaccess工作,所以我將重定向硬編碼爲包含index.php。 所有東西現在都可以正常工作。許多道歉浪費你的時間試圖解決一個不存在的問題!